繁体   English   中英

向量位置数组Matlab

[英]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

如果要使用该功能,则应将xPosyPos初始化为矢量:

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

基本上,您已经创建了xPosyPos作为具有width x height条目的数组,因此至少可以从ndgrid获得该数字的ndgrid 如果Z也有9个元素,那将使9 ^ 3 = 729行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM