我想用ox,oy,or这三个数组每个都有21个元素,我想这三个数组构造一个3行21*21*21=9261列的矩阵,xo位

我想用ox,oy,or这三个数组每个都有21个元素,我想这三个数组构造一个3行21*21*21=9261列的矩阵,xo位于第一行,oy位于第二行,or位于第三行,构造的形式:比如ox是1,2;oy是3,4;or是5,6;大概排列方式如图:

这样类似的排列,还请大神们不吝赐教,最好是用for循环~
gunaijin 1年前 已收到1个回答 举报

dsxce 幼苗

共回答了22个问题采纳率:86.4% 举报

不用for循环比较简洁
[zz yy xx]=ndgrid(oz,oy,ox);
a=[xx(:) yy(:) zz(:)]';
循环方法1
aa=zeros(3,21^3);
n=1;
for i=1:21
for j=1:21
for k=1:21
aa(1,n)=ox(i);
aa(2,n)=oy(j);
aa(3,n)=oz(k);
n=n+1;
end
end
end
循环方法2
aaa=zeros(3,21^3);
for m=1:21^3
x=m-1;
aaa(3,m)=oz(mod(x,21)+1);
x=floor(x/21);
aaa(2,m)=oy(mod(x,21)+1);
x=floor(x/21);
aaa(1,m)=ox(mod(x,21)+1);
x=floor(x/21);
end
三种办法得到的a,aa,aaa是一样的

1年前

6
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.022 s. - webmaster@yulucn.com