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即可:
y=unique(y,'rows');
y变成了一个排列的矩阵,每一行是一种排列,而且不重复。
最后在需要的位置插入一些0的列向量即可。
如何利用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楼:匿名用户
我只说方法。
(1)用perms
(2)先用nchoosek写出组合,再对其每种组合用perms进行全排列即可。
在matlab中怎么输入排列组合 5
4楼:疾风动竹
1、***bntns(x,m)
列举出从n个元素中取出m个元素的组合。其中,x是含有n个元素的向量。
2、perms(x)
给出向量x的所有排列。
matlab中排列组合问题,新手救急!!!谢谢!!!
5楼:匿名用户
双击matlab软件的快捷键,进入matlab的工作界面
matlab:排列组合问题
2将命令行窗口取消停靠(这样便于输入),按ctrl+shift+u取消停靠:
matlab:排列组合问题
end2.排列组合的函数
perms(x):在程序命令框中输入一个向量x,perms(x) 给出向量x的所有排列。
matlab:排列组合问题
***bntns(x,m):在程序中输入一个向量x与需要的元素个数m,***bntns(x,m)给出了从包含n个元素的向量x中选取m个元素的组合。
matlab:排列组合问题
matlab:排列组合问题
3nchoosek(x,m):在程序中输入一个向量x与需要的元素个数m,nchoosek(x,m)给出了从包含n个元素的向量x中选取m个元素的组合。
怎么在matlab中对排列组合中的某个元素进行赋值
6楼:匿名用户
只要在对应的位置直接赋值便可!
比如a(3,4)=5,表示对a矩阵中第三行,第四列的元素赋值为5!
matlab对于一组已有数据的多种排列组合
7楼:匿名用户
a=1:10;%十个数,可以是其他不同的十个r=zeros(size(a));%每个位置出现的次数,初始化全部为零
fori=1:100
b=a(randperm(length(a)));%b就是a中10个数的随机顺序排列
ind=find(b==1);%找到1的位置,也可以是其他a中的数字r(ind)=r(ind)+1;%对应位置记录加1个end
8楼:匿名用户
x=x(randperm(numel(x)))numel(x)获得变量长度
randperm(n)产生长度为n的随机数列 如:
randperm(4)
ans=
3 2 1 4
x(...) 取得x中相应元素产生新数列
9楼:匿名用户
% matrix_in是输入矩阵
% matrix_out是输出
矩阵function [matrix_out] = randmatrix(matrix_in)
[line column] = size(matrix_in);
matrix_out=zeros(line,column);
for i=1:line
seed=randperm(column);
matrix_out(i,:)= matrix_in(i,seed);
endend
10楼:匿名用户
n=100;
a=;
fork=1:n
a(k,:)=randperm(10);
end;
id=1;
sum(a==id)
11楼:
是的 matlab程序内核是c语言 m文件是ascii码文本
12楼:段干睿思彤瑗
a=randperm(10);
%a为1~10随意打乱顺序
b=[1,3,5,7,9];
%b为一组下标数据
c=a(b);
%将矩阵中对应下标的数据取出,结果存在c矩阵中(c为a矩阵的第[1,3,5,7,9]位)
d=sort(c);
%并对c矩阵由小到大排列,结果存在d矩阵中
在matlab中如何求一个向量内各个元素之和
13楼:匿名用户
其实很简单,只要用命令sum就ok了
你的问题只要这样就解决了:sum(a)回车
再告诉你一些简单的命令吧 mean平均值 diff微分 round四舍五入,有什么问题,发我邮箱adfaws@163.***
在matlab中怎样把两个向量的对应元素相乘得到新的向量
14楼:
t=0:0.1:5*pi;%范围
y=exp(-t/4).*sin(3*t);%注意中间是.*
y0=exp(-t/4);%两条包络线
y1=-y0;
plot(t,y,'+r',t,y0,'-b',t,y1,'-b');
15楼:情系渭水
用点乘就可以了
c=a.*b
问题解决了
16楼:岚之风飞
不需要函数,用c=a.*b就行,意思是做阵列乘法,即对应项相乘。而a*b是作矩阵乘法。
MATLAB中如何计算这种排列组合
1楼 匿名用户 第一题程序 1 nchoosek 51 18 nchoosek 54 18 结果 0 7121 第二题程序 3 18 nchoosek 54 18 结果 3 9971e 006 如何利用matlab把多组向量排列组合。 25 2楼 匿名用户 生成全排列可以用perms函数,把各向量放...
Matlab如何求数的排列组合,Matlab如何求16个数的排列组合 10
1楼 1 数据都是 n1 n2 这种形式?比如n 10,对应的就是 101 102 ? 2 最后这句话 从这些数列中选取4个然后从选取的4个数列中任选一个列出所有的排列组合 不明确,详细说明一下。 请教 如何用matlab将n个数的所有排列组合 2楼 一个扫描周期一个输出是可以,但你不需要所有的输出...