1楼:匿名用户
第一题程序:
1-nchoosek(51,18)/nchoosek(54,18)结果:0.7121
第二题程序:
3^18/nchoosek(54,18)
结果:3.9971e-006
如何利用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如何求16个数的排列组合 10
3楼:
1、数据都是[n1 n2]这种形式?比如n=10,对应的就是[101 102]?
2、最后这句话【从这些数列中选取4个然后从选取的4个数列中任选一个列出所有的排列组合】不明确,详细说明一下。
matlab对于一组已有数据的多种排列组合
4楼:匿名用户
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
5楼:匿名用户
x=x(randperm(numel(x)))numel(x)获得变量长度
randperm(n)产生长度为n的随机数列 如:
randperm(4)
ans=
3 2 1 4
x(...) 取得x中相应元素产生新数列
6楼:匿名用户
% 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
7楼:匿名用户
n=100;
a=;
fork=1:n
a(k,:)=randperm(10);
end;
id=1;
sum(a==id)
8楼:
是的 matlab程序内核是c语言 m文件是ascii码文本
9楼:段干睿思彤瑗
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中怎么输入排列组合 5
10楼:疾风动竹
1、***bntns(x,m)
列举出从n个元素中取出m个元素的组合。其中,x是含有n个元素的向量。
2、perms(x)
给出向量x的所有排列。
在matlab中实现向量中元素的排列组合
11楼:匿名用户
其实挺简单。首先,忽略固定为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排列组合问题 30
12楼:匿名用户
n=1:210;
k=20;
%数组n中挑k个的组合
n=length(n);
a=zeros(1,k);
i=1;j=1;
while 1
if j<=n
a(i)=j;
if i==k
disp(n(a));%这里只作显示,需要时可以用其它语句替换,比如保存到某个文件
else
i=i+1;
endj=j+1;
else
i=i-1;
if i==0
break;
endj=a(i)+1;
endend
这个程序只要你有足够的时间就可以把所有的组合全部都列出来,但是因为个数太多,一楼已经分析过,要看到全部显示完毕你这辈子是没指望了,厌烦了就ctrl+c终止程序吧。
13楼:小mm爱流氓
10的100次方,阿基米德说这个数字比全宇宙的沙子还多。你怎么不算这个数字呢
14楼:不畏严寒
运行不了,要死机了。
matlab 排列组合程序
15楼:真
组合命令:nchoosek,例子
nchoosek(1:5,3)%在[1 2 3 4 5]里取3个的全部组合
然后你可以对每一种组合(每一行)进行相应的计算即可