用Matlab怎样写出一维数组(或向量)的全排列组合

2021-01-02 20:48:15 字数 2516 阅读 7269

1楼:匿名用户

我只说方法。

(1)用perms

(2)先用nchoosek写出组合,再对其每种组合用perms进行全排列即可。

如何利用matlab把多组向量排列组合。 25

2楼:匿名用户

生成全排列可以用perms函数,把各向量放在元胞数组中,然后按照全排列来组合即可:

m = ;

i=perms(1:3);

c=mat2cell(i,ones(6,1),3);

r=cellfun(@(ii)[m],c,'uniformoutput',false)

这样得到的结果r是一个元胞数组,其每个元素分别是一个组合出来的向量。

>> cellfun(@(c)fprintf('%s\n',mat2str(c)),r)

[7 8 9 4 5 6 1 2 3]

[7 8 9 1 2 3 4 5 6]

[4 5 6 7 8 9 1 2 3]

[4 5 6 1 2 3 7 8 9]

[1 2 3 4 5 6 7 8 9]

[1 2 3 7 8 9 4 5 6]

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

3楼:匿名用户

其实挺简单。首先,忽略固定为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的列向量即可。

matlab 中什么语句可以得到排列组合的所有情况

4楼:du瓶邪

命令:***bntns(set,subset)在集合set中取subset个元素的所有组合例如:在[2 3 5 9 7]中取3个元素的所有组合为:

***bntns([2 3 5 9 7],3)运行结果:

2 3 5

2 3 9

2 3 7

2 5 9

2 5 7

2 9 7

3 5 9

3 5 7

3 9 7

5 9 7

另外可以用命令perms得到排列,用法:

perms(vector)

给出向量vector的所有排列,例如

perms([2 3 5])

运行结果:

5 3 2

5 2 3

3 5 2

3 2 5

2 3 5

2 5 3

matlab 中什么语句可以得到排列组合的所有情况

5楼:昱婷漫步

perms函数,如以下**:

a=[1 2 3];

b=perms(a);

------运行结果为:

b =3 2 1

3 1 2

2 3 1

2 1 3

1 2 3

1 3 2

在matlab中怎么输入排列组合 5

6楼:疾风动竹

1、***bntns(x,m)

列举出从n个元素中取出m个元素的组合。其中,x是含有n个元素的向量。

2、perms(x)

给出向量x的所有排列。

matlab中怎么定义一个全零的一维数组

7楼:shine戚七七

zeros(m,n)

生成全零的mxn矩阵

m,n其中一个为1,就是一维数组,看你需要行方向还是列方向matlab中定义一维数组就相当于定义一个向量,也就是n乘1阶的二维矩阵;

例如:》myarray=[32 56 67 4 6 7]之后就可用myarray(1)来访问32(matlab中的数组下标与c不同,matlab是从1开始的),

用myarray(3)来访问67。

8楼:大熊爱小宝

使用函数zeros(m,n),其中m、n指零矩阵的行列,要定义一维全零数组,如下即可:zeros(1,n)

matlab中怎么定义一个全零的一维数组

9楼:匿名用户

zeros(m,n)

生成全零的mxn矩阵

m,n其中一个为1,就是一维数组,看你需要行方向还是列方向

10楼:真

zeros(1,5)

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

1楼 匿名用户 其实挺简单。首先,忽略固定为0的几项,直接排列不固定的几项,比如如你所说的1 2 3 4 5 0 0 x 1 2 3 4 5 0 0 y perms x y就是x的所有排列,perms是系统函数,你可以help一下。 但关键是有两个零,有些排列是重复的,此时使用化简函数unique即...