У меня есть трехмерное облако точек (XYZ), где Z
может быть положением или энергией. Я хочу спроецировать их на 2D-поверхность в сетке n на m (в моей задаче n = m
) таким образом, чтобы каждая ячейка сетки имела максимальное значение разность Z
, если Z
— это позиция, или значение суммирования по Z
, если Z
— это энергия.
Например, в диапазоне 0 <= (x,y) <= 20
есть 500 точек. Допустим, плоскость xy имеет n-на-m разделов, например. 4-на-4; под которым я подразумеваю, что в обоих направлениях x
и y
у нас есть 4 раздела с интервалом 5
(чтобы сделать его 20
максимальным. Теперь каждая из этих ячеек должна иметь значение суммы или максимальной разности Z
значения те точки, которые находятся в соответствующем столбце в заданной плоскости xy.
Я сделал простой массив XYZ только для теста следующим образом, где в этом случае Z
обозначает энергию каждой точки.
n=1;
for i=1:2*round(random('Uniform',1,5))
for j=1:2*round(random('Uniform',1,5))
table(n,:)=[i,j,random('normal',1,1)];
n=n+1;
end
end
Как это сделать без циклов?