来自刘嘉欣的问题
【MATLAB排列组合如何实现?从每个矩阵抽取一个元素组成排列三个矩阵A=[123];B=[456];C=[789];如何从每个矩阵抽取一个元素组成的所有排列比如[147][148]等等】
MATLAB排列组合如何实现?从每个矩阵抽取一个元素组成排列
三个矩阵A=[123];B=[456];C=[789];
如何从每个矩阵抽取一个元素组成的所有排列
比如[147][148]等等


【MATLAB排列组合如何实现?从每个矩阵抽取一个元素组成排列三个矩阵A=[123];B=[456];C=[789];如何从每个矩阵抽取一个元素组成的所有排列比如[147][148]等等】
MATLAB排列组合如何实现?从每个矩阵抽取一个元素组成排列
三个矩阵A=[123];B=[456];C=[789];
如何从每个矩阵抽取一个元素组成的所有排列
比如[147][148]等等
不一样,实际上我是一个矩阵,每一行元素个数不同要每一行取出一个元素组成矩阵,所以想不到要怎么做啊
你的矩阵怎么能每行元素不一样多呢,那怎么形成的矩阵啊?是不是矩阵的有些元素是nan或者inf。
有些元素是0,我不用那些元素的
这个需要很复杂的编程实现,而且得到的数据量太大了,如果矩阵是10*10的,得到的结果已经超出matlab的能力了。好像是有10^10的数据啊
result=[];
forA=[123]
forB=[456]
forC=[789];
result=[result;perms([ABC])];
end
end
end
这样就行了,这是所有的排列.但你给出的例子好像是组合,组合的话就是
result=[];
forA=[123]
forB=[456]
forC=[789];
result=[result;[ABC]];
end
end
end
可是要排列组合的矩阵有几百个,总不能写几百个循环吧?MATLAB有没什么方法能直接获取排列组合呢
你的这些矩阵的大小都是一样的吗,如果一样的话是有办法的,不一样的话可能就比较复杂啦