[英]array of vector positions Matlab
我正在尝试创建布料模拟器,并且需要一种存储粒子位置的方法。 我想将它们存储为[x,y,z]。 我需要所有粒子位置的数组。 这将意味着具有数组[[x1,y1,z1],[x2,y2,z2],... etc]。
我的宽度和高度均为3,因此网格中应该有9个[x,y,z]。 但是我的输出显示100个位置。 我真的不知道我在做什么错。 抱歉,这个问题的格式可以更好。
for i = 1:particleWidth
for j = 1:particleHeight
X = (width*(i/particleWidth));
Y = (height*(j/particleHeight));
xPos = [xPos,X];
yPos = [yPos,Y];
end
end
[T1,T2,T3] = ndgrid(xPos,yPos,Z);
grid = [T1(:),T2(:),T3(:)];
disp(grid);
ndgrid
复制输入以创建网格。
[X,Y]=ndgrid(1:3,4:6)
X =
1 1 1
2 2 2
3 3 3
Y =
4 5 6
4 5 6
4 5 6
如果要使用该功能,则应将xPos
和yPos
初始化为矢量:
xPos = (width/particleWidth).*(1:particleWidth);
yPos = (height/particleHeight).*(1:particleHeight);
[T1,T2] = ndgrid(xPos,yPos); %T1 and T2 will be width-by-height arrays
grid = [T1(:),T2(:),zeros(numel(T1),1)]; % Or whatever Z should be
基本上,您已经创建了xPos
和yPos
作为具有width x height条目的数组,因此至少可以从ndgrid
获得该数字的ndgrid
。 如果Z
也有9个元素,那将使9 ^ 3 = 729行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.