ziyenano 发表于 2013-7-24 18:18 
n=10;
m=5;
P=1+rand(m,1);
你的想法启发了我,我想改一下就是我要的形式:
%初始化Z
tmp1=zeros(n,m);
for k=1:m
k1=sum(N(1:k-1))+1;
k2=sum(N(1:k));
tmp1(k1:k2,k)=tmp1(k1:k2,k)+1;
end
tmp2=unifrnd(0,1,n,1); %生成n*1的(0,1)之间连续分布的随机数
tmp=[tmp2 tmp1]; %将两个矩阵拼接起来
Z2=sortrows(tmp); %按照矩阵的第一列升序排列,目的就是对后面的列实现随机排列
Z2(:,1)=[]; %去掉第一列,剩下的就是我们需要的Z2矩阵
最后还是非常感谢你!为什么你的SAS和matlab都可以这么好。。。膜拜!