matlab 随机生成每列只有一个1 其余为0的矩阵

请教诸位一个问题,如何用matlab 随机生成M*N的矩阵,矩阵的每列只有一个元素为1, 其余元素为0

第1个回答  2015-08-21
m=10;%行数
n=15;%列数
A=zeros(m,n); %生成全零矩阵
b=randi(m,[1 n]); %生成n个从1到m的随机整数
ind=sub2ind([m,n],b,1:n);%形成位置
A(ind)=1;%将对应位置变为1本回答被网友采纳
第2个回答  2010-04-18
可以先生成一个M*N的零矩阵,然后再每列随机选择某行的数赋值为1
A=zeros(M,N);
for ni=1:N
p=randperm(M);%随机排序1到M的整数
A(p(1),ni)=1;
end
第3个回答  2010-04-18
m=6;n=5;%6行5列
full(sparse(randint(1,n,[1,m]),1:n,1,m,n))本回答被提问者采纳
第4个回答  2010-04-18
就相当于每列生成一个随机整数,范围1~M,对应的位置位1,其余位置为0
相似回答