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的

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/25 22:29:04
Matlab里取代for循环的方法我的问题是这样的,一个数组angle_6_axis=[ABCDEF],A=[1,2],B=[2,3],C=[5,6],D=[9,10],E=[11,12],F=[14

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的
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的全排列,先谢过~

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的

楼上的回答基本思路是对的,应该使用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

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的 matlab中用for循环生成的n个单个数据怎么放入一个矩阵里,我用一个for循环做了个条件,得出1或0的结果,想把他们放在一个矩阵里 matlab的for循环结束条件问题matlab中 for 1:10这种就是循环10次,但是我的循环次数不确定,要根据实际情况改变,怎么办?matlab能实现这种相对复杂的编程吗? Matlab,for循环怎么计算循环次数?多重循环呢,比如说两重的? 请介绍一下matlab中for循环的怎么使用?我不会那个help matlab,怎样将每次循环中生成的值存在一个矩阵里?要简单的方法. MATLAB for循环求和的问题谢谢了, matlab关于用arrayfun取代for循环的问题有个函数 f=x+y+(w-z)^2,x=1:1:2;y=2:1:5;w=1:2:5;z=1:1:6; 我想求出f里面的最大值,和对应的x,y,w,z值,如果不用for 循环,可以怎么写?我大概的想法是f=@(x,y,z,w) x+y+(z-w)^2 matlab里怎么把矩阵编号,用于for循环 matlab的循环while C matlab中有多个for循环,画图有多个for循环,每个for循环里面还有几个for循环,但是只有最外面的for有图形输出,请问怎么注释每个for循环画出的图形?用legend可以吗? matlab怎么定义两个同时循环的变量?for p=2:Tfor t=2:T......endend这种不行,在t循环完之前,p不循环,我要两个同时循环. matlab 怎么样定义一个向量或者矩阵来存储 for循环得出的函数呢? 比如A(i)=x^i? 还有什么更有效的方法? VB程序里的循环结构怎么写?for循环和do while循环 matlab for循环 调取变量 已有变量t1 t2 t3 t4,怎样用for循环的i调取‘ti’ 如何在for循环外获取for循环里的值 matlab中能不能这样写for循环:for i=100:1我这样写的目的是要使i由100减小到1. for k = v(1:2),v是一个1维数组,这个循环是怎么循环的?matlab中