用matlab程序从15个数据中随机抽取五个构成一个矩阵,要随机抽取100次,要保证每次抽取的数据都不一样,

如题所述

设原式数据保存在列向量data, 含15个元素
要结果保存在一个100*5的矩阵M中, 每一行是每次抽取的五个元素
for i = 1:100

M(:,i) = data(randi(15,1,5));
end
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-16
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% 2013-07-16:全排列组合例子
%%%% Edited by Ljwgbb
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%% 0、参数设置
NumN=15; %%%% N选K中的N
NumK=6; %%%% N选K中的K
NumSel=100; %%%% 筛选次数
%%%% 数据例子:保证为列向量
InitData=1:NumN;
InitData=InitData(:);
%%%%%% 1、利用系统函数生成全排列
%%%% 组合
A1=nchoosek(1:NumN,NumK);
%%%% K的全排列
B1=perms(1:NumK);
%%%% 总的排列组合
C1=reshape(A1(:,B1')',NumK,[])';
NumTotal=size(C1,1);
MySel=randperm(NumTotal,NumSel);
%%%%%% 2.选择数据
MyData=reshape(InitData(C1(MySel,:)',1),NumK,[])';

上述代码,若需产生同样结果,可以使用:rand('state',20130716)进行固化
相似回答