作业帮 > 综合 > 作业

Matlab里取代for循环的方法

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/09 07:16:35
Matlab里取代for循环的方法
我的问题是这样的,一个数组angle_6_axis=[A B C D E F],A=[1,2],B=[2,3],C=[5,6],D=[9,10],E=[11,12],F=[14,19]这里只是举个例子,其实ABCDEF里的元素其实远不止两个.然后要实现A,B,C,D,E,F的全排列.
我写了个很笨的6个嵌套的for循环实现.
f=1;
for k=1:AL
for j=1:BL
for h=1:CL
for o=1:DL
for p=1:EL
for q=1:FL
G(f)={[A(k),B(j),C(h),D(o),E(p),F(q)]};
angle_6_axis=[A(k),B(j),C(h),D(o),E(p),F(q)];
end.
求教Matlab是否有其他可能性实现A,B,C,D,E,F的全排列,先谢过~
楼上的回答基本思路是对的,应该使用ndgrid函数来做.但楼上的代码存在两个问题:一是做法比较繁琐,二是只适用于A-F六个变量元素数量相同的情况. 参考代码:A = [1 2 3];
B = [2 3];
C = [5 6];
D = [9 10];
E = [11 12];
F = [14,19];
[A,B,C,D,E,F] = ndgrid(A,B,C,D,E,F);
angle_6_axis = [A(:),B(:),C(:),D(:),E(:),F(:)] 得到结果:angle_6_axis =
     1     2     5     9    11    14
     2     2     5     9    11    14
     3     2     5     9    11    14
     1     3     5     9    11    14
     2     3     5     9    11    14
     3     3     5     9    11    14
     1     2     6     9    11    14
     2     2     6     9    11    14
     3     2     6     9    11    14
     1     3     6     9    11    14
     2     3     6     9    11    14
     3     3     6     9    11    14
     1     2     5    10    11    14
     2     2     5    10    11    14
     3     2     5    10    11    14
     1     3     5    10    11    14
     2     3     5    10    11    14
     3     3     5    10    11    14
     1     2     6    10    11    14
     2     2     6    10    11    14
     3     2     6    10    11    14
     1     3     6    10    11    14
     2     3     6    10    11    14
     3     3     6    10    11    14
     1     2     5     9    12    14
     2     2     5     9    12    14
     3     2     5     9    12    14
     1     3     5     9    12    14
     2     3     5     9    12    14
     3     3     5     9    12    14
     1     2     6     9    12    14
     2     2     6     9    12    14
     3     2     6     9    12    14
     1     3     6     9    12    14
     2     3     6     9    12    14
     3     3     6     9    12    14
     1     2     5    10    12    14
     2     2     5    10    12    14
     3     2     5    10    12    14
     1     3     5    10    12    14
     2     3     5    10    12    14
     3     3     5    10    12    14
     1     2     6    10    12    14
     2     2     6    10    12    14
     3     2     6    10    12    14
     1     3     6    10    12    14
     2     3     6    10    12    14
     3     3     6    10    12    14
     1     2     5     9    11    19
     2     2     5     9    11    19
     3     2     5     9    11    19
     1     3     5     9    11    19
     2     3     5     9    11    19
     3     3     5     9    11    19
     1     2     6     9    11    19
     2     2     6     9    11    19
     3     2     6     9    11    19
     1     3     6     9    11    19
     2     3     6     9    11    19
     3     3     6     9    11    19
     1     2     5    10    11    19
     2     2     5    10    11    19
     3     2     5    10    11    19
     1     3     5    10    11    19
     2     3     5    10    11    19
     3     3     5    10    11    19
     1     2     6    10    11    19
     2     2     6    10    11    19
     3     2     6    10    11    19
     1     3     6    10    11    19
     2     3     6    10    11    19
     3     3     6    10    11    19
     1     2     5     9    12    19
     2     2     5     9    12    19
     3     2     5     9    12    19
     1     3     5     9    12    19
     2     3     5     9    12    19
     3     3     5     9    12    19
     1     2     6     9    12    19
     2     2     6     9    12    19
     3     2     6     9    12    19
     1     3     6     9    12    19
     2     3     6     9    12    19
     3     3     6     9    12    19
     1     2     5    10    12    19
     2     2     5    10    12    19
     3     2     5    10    12    19
     1     3     5    10    12    19
     2     3     5    10    12    19
     3     3     5    10    12    19
     1     2     6    10    12    19
     2     2     6    10    12    19
     3     2     6    10    12    19
     1     3     6    10    12    19
     2     3     6    10    12    19
     3     3     6    10    12    19