中易网

Matlab里取代for循环的方法

答案:2  悬赏:0  
解决时间 2021-03-08 04:24
我的问题是这样的,一个数组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
全部回答
可以直接 a=[1,2,3,4,5,6,7];b=[2,3,4,5,6,7,8]; c = a'*b c =      2     3     4     5     6     7     8      4     6     8    10    12    14    16      6     9    12    15    18    21    24      8    12    16    20    24    28    32     10    15    20    25    30    35    40     12    18    24    30    36    42    48     14    21    28    35    42    49    56你非要循环的话 a=[1,2,3,4,5,6,7];b=[2,3,4,5,6,7,8]; for i = 1:length(a)   for j = 1:length(b)     c(i,j) = a(i)*b(j);   end end c %% 结果 c =      2     3     4     5     6     7     8      4     6     8    10    12    14    16      6     9    12    15    18    21    24      8    12    16    20    24    28    32     10    15    20    25    30    35    40     12    18    24    30    36    42    48     14    21    28    35    42    49    56
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
求有关环境保护的英文单词
平时只要趴在桌子上睡觉就会感觉腹胀,有很多
word发送的错误报告,最终是发送到哪里呀,想
八年级上册英语助学答案
西北拉面海德分店地址在什么地方,想过去办事
带紫檀手串好,还是檀香手串好
上一个普通的一本大学,以后考研再考个重点名
大世界食品商行地址在什么地方,想过去办事
www.ngstc.gov.cn编号为G120803156查询 码为4
被顶替上班了怎么办
辽宁朝阳的电影院播放全城热恋的时间是多少?
有木有关于运动、青春的口号
盛世婚庆策划这个地址在什么地方,我要处理点
在手机上百度搜索的内容会出现在电脑上怎么解
我总感觉我屁股的肉变多了,怎么回事?是长期
推荐资讯
小姑娘冰淇淋在哪里啊,我有事要去这个地方
最近买了个手表,叫摩尚不知道怎么样
求一首英文歌里面歌词总是重复hero to flght
认识汽车对小学生有什么教育意义
去面试了一个公司,应聘上来,但是回来之后才
西安那买的有飘窗上铺的那种好看的海绵垫子的
鸿运来宾馆在什么地方啊,我要过去处理事情
吾金次旺藏装店这个地址在什么地方,我要处理
如何校准调频的频偏?该用什么仪器校准?
打渔郎冷锅鱼这个地址在什么地方,我要处理点
东方时尚驾校科目二
一万多买铃木en150-a亏不亏!听说能买更好的
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?