matlab中如何在zeros[1,n]矩阵中随机生成5个1,其他元素全为0?

不知道怎么处理了,求教。万分感谢

第1个回答  2013-07-27
好办
index=randi(n,1,5) %randi生成5个随机数,在1到n之间, 以此作为下标
A=zeros(1,n);
A(index)=1 %令这5个随机位置的元素为1追问

如果我要继续,在A中再生成5个随机数呢?这5个随机数必须是元素为0的位置,不能是随机1的元素。谢谢。

第2个回答  2013-07-27
clear all;clc
n=10; % 这里以n=10为例
A=zeros(1,n);
ind=1:n;
for i=1:5
m=randi(n-i+1);
A(ind(m))=1;
ind=ind(ind~=ind(m));
end
A'
第3个回答  2013-07-27
假设n=100;
以下为代码:
A=zeros(1,100);
index=randperm(100,5);
A(index)=1;本回答被提问者采纳