【发布时间】:2013-11-20 19:44:02
【问题描述】:
我有一个 3D 点云 (XYZ),其中 Z 可以是位置或能量。我想以 n-by-m 网格(在我的问题n = m)中将它们投影到 2D 表面上,每个网格单元的值为Z 的最大差值,如果Z 是位置,或求和值超过Z,如果Z 是能量。
例如,在0 <= (x,y) <= 20 的范围内,有 500 个点。假设 xy 平面有 n-by-m 个分区,例如4-by-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
如何在没有循环的情况下做到这一点?
【问题讨论】:
标签: matlab matrix vectorization projection