在matlab中实现向量中元素的排列组合

如题所述

其实挺简单。首先,忽略固定为0的几项,直接排列不固定的几项,比如如你所说的1、2、3、4、5、0、0:
x=[1,2,3,4,5,0,0];
y=perms(x);
y就是x的所有排列,perms是系统函数,你可以help一下。
但关键是有两个零,有些排列是重复的,此时使用化简函数unique即可:
y=unique(y,'rows');
y变成了一个排列的矩阵,每一行是一种排列,而且不重复。
最后在需要的位置插入一些0的列向量即可。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-01-29
求向量中最大值元素及其序号的简单代码为:
[m,i]
=
max(a)。其中a是行/列向量,m是最大值,i是最大值元素的索引即序号。
注意:如果a中存在多个并列的最大值,上面的代码只会得到第一个最大元素的位置。因此,通用的写法如下:i
=
find(a==max(a))
如果拓展到二维矩阵,写法也类似:[i,j]
=
find(a==max(max(a)))
示例如下:
相似回答