Matlab对于一组已有数据的多种排列组合

2024-12-27 12:49:52
推荐回答(5个)
回答1:

a=1:10;%十个数,可以是其他不同的十个
r=zeros(size(a));%每个位置出现的次数,初始化全部为零
for i=1:100
    b=a(randperm(length(a)));%b就是a中10个数的随机顺序排列
    ind=find(b==1);%找到1的位置,也可以是其他a中的数字
    r(ind)=r(ind)+1;%对应位置记录加1个
end

回答2:

n = 100;

A = [];

for k = 1:n

    A(k,:) = randperm(10);

end;

id = 1;

sum(A==id)

回答3:

X=X(randperm(numel(x)))

numel(x)获得变量长度
randperm(n)产生长度为n的随机数列 如:
randperm(4)
ans=
3 2 1 4
X(...) 取得X中相应元素产生新数列

回答4:

是的 Matlab程序内核是C语言 m文件是ASCII码文本

回答5:

% 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);
end
end