У меня есть облако 3D-точек (XYZ), где Z
может быть позицией или энергией. Я хочу, чтобы спроецировать их на 2D поверхности в сетке пм матрица с размерностью (в моей проблеме n = m
) таким образом, что каждая ячейка сетки имеет значение максимальной разности Z
, в случае Z
будучи позиции , или значение суммирования по Z
, в случае Z
, являющегося энергией.Анализ 3D-облака точек проекцией на 2D-поверхность
Например, в диапазоне 0 <= (x,y) <= 20
есть 500 баллов. Скажем, xy-плоскость имеет n -by- m перегородки, например. -by- ; под которым я подразумеваю как в направлениях x
, так и в y
, у нас есть 4 раздела с интервалом 5
(чтобы сделать его максимально 20
. Теперь каждая из этих ячеек должна иметь значение суммирования или максимальную разницу в значении Z
те точки, которые находятся в соответствующем столбце в определенной плоскости х.
Я сделал простой массив 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
Как это можно сделать без петель?
+1 к обоим ответам. Приятно видеть, что 'tankarray' используется умными способами. Существует четкая кривая обучения с 'accumarray', но она открывает двери, как только вы ее снимите. – chappjc
@chappjc Мне нравится, как все эти входные параметры (для аккумулирования), которые я изначально нашел почти бесполезными, оказываются в точности, что мне нужно ;-) –