create random matrix with 4 vectors

How can I create a random matrix X that has n rows, and each row is [1 0 0], [0 1 0], [0 0 1] or [0 0 0]. On top of that, the first possibility has to appear x times, the second one y times and the third one again z times. In other words sum(X)= [x y z]?

 采纳的回答

a=[1 0 0; 0 1 0;0 0 1]
x=5
y=4
z=7
n=x+y+z
b=zeros(n,3)
ii1=randperm(n,x)
b(ii1,:)=repmat(a(1,:),x,1)
ii=setdiff(1:n,ii1)
ii2=ii(randperm(numel(ii),y))
b(ii2,:)=repmat(a(2,:),y,1)
ii=setdiff(ii,ii2)
b(ii,:)=repmat(a(3,:),z,1)

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Random Number Generation 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by