2

I have a question about the list of points - in the list below I would like to change the 3rd value of each point to another - like this: {x, y, 0} to (x, y, 0.08}

Y09POINTS={{0.028684, 0.7, 0.}, {0.0286303, 0.706848, 0.}, {0.0282852, 0.75, 
  0.}, {0.0287183, 0.793591, 0.}, {0.0287511, 0.8, 0.}, {0.03, 
  0.832036, 0.}, {0.0309524, 0.85, 0.}, {0.04, 0.880317, 
  0.}, {0.0479972, 0.9, 0.}, {0.05, 0.902169, 0.}, {0.0506499, 
  0.903249, 0.}, {0.06, 0.917023, 0.}, {0.0634705, 0.917352, 
  0.}, {0.07, 0.916915, 0.}, {0.0727888, 0.913944, 0.}, {0.08, 
  0.905785, 0.}, {0.0814746, 0.907373, 0.}, {0.09, 0.916915, 
  0.}, {0.0933178, 0.916589, 0.}, {0.1, 0.917023, 0.}, {0.10252, 
  0.912598, 0.}, {0.11, 0.902169, 0.}, {0.110335, 0.901676, 
  0.}, {0.112003, 0.9, 0.}, {0.117299, 0.886497, 0.}, {0.12, 0.880317,
   0.}, {0.123646, 0.868231, 0.}, {0.129048, 0.85, 0.}, {0.129185, 
  0.845923, 0.}, {0.13, 0.832036, 0.}, {0.130918, 0.80459, 
  0.}, {0.131249, 0.8, 0.}, {0.131673, 0.758365, 0.}, {0.131715, 0.75,
   0.}, {0.13137, 0.706848, 0.}, {0.131316, 0.7, 0.}, {0.131307, 
  0.693466, 0.}, {0.13115, 0.65, 0.}, {0.130924, 0.604621, 
  0.}, {0.13088, 0.6, 0.}, {0.130787, 0.553935, 0.}, {0.130798, 0.55, 
  0.}, {0.130773, 0.503866, 0.}, {0.130751, 0.5, 0.}, {0.130775, 
  0.453875, 0.}, {0.130798, 0.45, 0.}, {0.130893, 0.404463, 
  0.}, {0.13088, 0.4, 0.}, {0.130924, 0.395379, 0.}, {0.13115, 0.35, 
  0.}, {0.131307, 0.306534, 0.}, {0.131316, 0.3, 0.}, {0.13165, 
  0.258251, 0.}, {0.131715, 0.25, 0.}, {0.131282, 0.206409, 
  0.}, {0.131249, 0.2, 0.}, {0.130918, 0.19541, 0.}, {0.13, 0.167964, 
  0.}, {0.129048, 0.15, 0.}, {0.12, 0.119683, 0.}, {0.117299, 
  0.113503, 0.}, {0.112003, 0.1, 0.}, {0.110335, 0.0983238, 
  0.}, {0.11, 0.097831, 0.}, {0.10935, 0.0967508, 0.}, {0.1, 
  0.0829773, 0.}, {0.0965295, 0.0826475, 0.}, {0.09, 0.0830853, 
  0.}, {0.0814746, 0.0926271, 0.}, {0.08, 0.094215, 0.}, {0.0785254, 
  0.0926271, 0.}, {0.07, 0.0830853, 0.}, {0.0634705, 0.0826475, 
  0.}, {0.06, 0.0829773, 0.}, {0.0574805, 0.0874023, 0.}, {0.05, 
  0.097831, 0.}, {0.0496648, 0.0983238, 0.}, {0.0479972, 0.1, 
  0.}, {0.04, 0.119683, 0.}, {0.0363538, 0.131769, 0.}, {0.0309524, 
  0.15, 0.}, {0.0308154, 0.154077, 0.}, {0.03, 0.167964, 
  0.}, {0.029082, 0.19541, 0.}, {0.0287511, 0.2, 0.}, {0.0283271, 
  0.241635, 0.}, {0.0282852, 0.25, 0.}, {0.0286303, 0.293152, 
  0.}, {0.028684, 0.3, 0.}, {0.028842, 0.34421, 0.}, {0.0288502, 0.35,
   0.}, {0.0290759, 0.395379, 0.}, {0.0291196, 0.4, 0.}, {0.029213, 
  0.446065, 0.}, {0.0292019, 0.45, 0.}, {0.0292269, 0.496134, 
  0.}, {0.0292492, 0.5, 0.}, {0.0292249, 0.546125, 0.}, {0.0292019, 
  0.55, 0.}, {0.0291073, 0.595537, 0.}, {0.0291196, 0.6, 
  0.}, {0.0289033, 0.644517, 0.}, {0.0288502, 0.65, 0.}, {0.0286931, 
  0.693466, 0.}, {0.028684, 0.7, 0.}}

If he uses the ReplacePart function, the effect is not what it should be (i want) - it's below.

After the whole operation, I would like to view the points using ListPlot3D.

Could someone help me with this issue?

ReplacePart[Y09POINTS, 3 -> 0.08]
{{0.028684, 0.7, 0.}, {0.0286303, 0.706848, 0.}, 0.08, {0.0287183, 
  0.793591, 0.}, {0.0287511, 0.8, 0.}, {0.03, 0.832036, 
  0.}, {0.0309524, 0.85, 0.}, {0.04, 0.880317, 0.}, {0.0479972, 0.9, 
  0.}, {0.05, 0.902169, 0.}, {0.0506499, 0.903249, 0.}, {0.06, 
  0.917023, 0.}, {0.0634705, 0.917352, 0.}, {0.07, 0.916915, 
  0.}, {0.0727888, 0.913944, 0.}, {0.08, 0.905785, 0.}, {0.0814746, 
  0.907373, 0.}, {0.09, 0.916915, 0.}, {0.0933178, 0.916589, 
  0.}, {0.1, 0.917023, 0.}, {0.10252, 0.912598, 0.}, {0.11, 0.902169, 
  0.}, {0.110335, 0.901676, 0.}, {0.112003, 0.9, 0.}, {0.117299, 
  0.886497, 0.}, {0.12, 0.880317, 0.}, {0.123646, 0.868231, 
  0.}, {0.129048, 0.85, 0.}, {0.129185, 0.845923, 0.}, {0.13, 
  0.832036, 0.}, {0.130918, 0.80459, 0.}, {0.131249, 0.8, 
  0.}, {0.131673, 0.758365, 0.}, {0.131715, 0.75, 0.}, {0.13137, 
  0.706848, 0.}, {0.131316, 0.7, 0.}, {0.131307, 0.693466, 
  0.}, {0.13115, 0.65, 0.}, {0.130924, 0.604621, 0.}, {0.13088, 0.6, 
  0.}, {0.130787, 0.553935, 0.}, {0.130798, 0.55, 0.}, {0.130773, 
  0.503866, 0.}, {0.130751, 0.5, 0.}, {0.130775, 0.453875, 
  0.}, {0.130798, 0.45, 0.}, {0.130893, 0.404463, 0.}, {0.13088, 0.4, 
  0.}, {0.130924, 0.395379, 0.}, {0.13115, 0.35, 0.}, {0.131307, 
  0.306534, 0.}, {0.131316, 0.3, 0.}, {0.13165, 0.258251, 
  0.}, {0.131715, 0.25, 0.}, {0.131282, 0.206409, 0.}, {0.131249, 0.2,
   0.}, {0.130918, 0.19541, 0.}, {0.13, 0.167964, 0.}, {0.129048, 
  0.15, 0.}, {0.12, 0.119683, 0.}, {0.117299, 0.113503, 
  0.}, {0.112003, 0.1, 0.}, {0.110335, 0.0983238, 0.}, {0.11, 
  0.097831, 0.}, {0.10935, 0.0967508, 0.}, {0.1, 0.0829773, 
  0.}, {0.0965295, 0.0826475, 0.}, {0.09, 0.0830853, 0.}, {0.0814746, 
  0.0926271, 0.}, {0.08, 0.094215, 0.}, {0.0785254, 0.0926271, 
  0.}, {0.07, 0.0830853, 0.}, {0.0634705, 0.0826475, 0.}, {0.06, 
  0.0829773, 0.}, {0.0574805, 0.0874023, 0.}, {0.05, 0.097831, 
  0.}, {0.0496648, 0.0983238, 0.}, {0.0479972, 0.1, 0.}, {0.04, 
  0.119683, 0.}, {0.0363538, 0.131769, 0.}, {0.0309524, 0.15, 
  0.}, {0.0308154, 0.154077, 0.}, {0.03, 0.167964, 0.}, {0.029082, 
  0.19541, 0.}, {0.0287511, 0.2, 0.}, {0.0283271, 0.241635, 
  0.}, {0.0282852, 0.25, 0.}, {0.0286303, 0.293152, 0.}, {0.028684, 
  0.3, 0.}, {0.028842, 0.34421, 0.}, {0.0288502, 0.35, 
  0.}, {0.0290759, 0.395379, 0.}, {0.0291196, 0.4, 0.}, {0.029213, 
  0.446065, 0.}, {0.0292019, 0.45, 0.}, {0.0292269, 0.496134, 
  0.}, {0.0292492, 0.5, 0.}, {0.0292249, 0.546125, 0.}, {0.0292019, 
  0.55, 0.}, {0.0291073, 0.595537, 0.}, {0.0291196, 0.6, 
  0.}, {0.0289033, 0.644517, 0.}, {0.0288502, 0.65, 0.}, {0.0286931, 
  0.693466, 0.}, {0.028684, 0.7, 0.}}
Arek
  • 67
  • 4

3 Answers3

4

You can try this instead:

a = Y09POINTS;
a[[All,3]] = 0.08;

Then a contains the desired result.

You can also use ReplacePart[p, {_, 3} -> 0.08] but I would not suggest that; it is pretty slow (slower by two orders of mangnitude).

Henrik Schumacher
  • 106,770
  • 7
  • 179
  • 309
  • Thank you @Henrik Schumacher

    Both methods work - if I have a larger part of the results, I will also test the performance and I will refer :)

    – Arek Oct 14 '18 at 17:45
3
ArrayFlatten@{{Y09POINTS[[All, ;; 2]], 0.08}}
user1066
  • 17,923
  • 3
  • 31
  • 49
3
# + {0., 0., 0.08} & /@ Y09POINTS

Or, though slower,

# + ConstantArray[{0., 0., 0.08}, Length@#] &@Y09POINTS
NonDairyNeutrino
  • 7,810
  • 1
  • 14
  • 29