作业帮 > 数学 > 作业

MATLAB 排列组合如何实现?从每个矩阵抽取一个元素组成排列

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/07/19 14:02:42
MATLAB 排列组合如何实现?从每个矩阵抽取一个元素组成排列
三个矩阵A=[1 2 3]; B=[4 5 6]; C=[7 8 9];
如何从每个矩阵抽取一个元素组成的所有排列
比如[1 4 7] [1 4 8] 等等
esult=[];
for A=[1 2 3]
for B=[4 5 6]
for C=[7 8 9];
result=[result;perms([A B C])];
end
end
end
这样就行了,这是所有的排列.但你给出的例子好像是组合,组合的话就是
result=[];
for A=[1 2 3]
for B=[4 5 6]
for C=[7 8 9];
result=[result;[A B C]];
end
end
end
再问: 可是要排列组合的矩阵有几百个,总不能写几百个循环吧?MATLAB有没什么方法能直接获取排列组合呢
再答: 你的这些矩阵的大小都是一样的吗,如果一样的话是有办法的,不一样的话可能就比较复杂啦
再问: 不一样,实际上我是一个矩阵,每一行元素个数不同 要每一行取出一个元素组成矩阵,所以想不到要怎么做啊
再答: 你的矩阵怎么能每行元素不一样多呢,那怎么形成的矩阵啊?是不是矩阵的有些元素是nan或者inf。
再问: 有些元素是0,我不用那些元素的
再答: 这个需要很复杂的编程实现,而且得到的数据量太大了,如果矩阵是10*10的,得到的结果已经超出matlab的能力了。好像是有10^10的数据啊