how can i fill matrix using a vector?

7 views (last 30 days)
my vector v1=[1 4 8 9 3 6 ]
my matrix pop with size N*m
N=10:
m=4;
I want to fill randomly matrix pop with v1 and 0 like this:
pop = 1 4 0 6
3 0 0 8
1 6 3 0
.
.please help me

Accepted Answer

JESUS DAVID ARIZA ROYETH
JESUS DAVID ARIZA ROYETH on 14 Nov 2019
solution:
v1=[1 4 8 9 3 6 ];
v2=[v1 zeros(1,4)];% change the amount of 0 to increase the probability in this case there are 4
pop=v2(randi(numel(v2),10,4))
  1 Comment
Mira le
Mira le on 14 Nov 2019
It works, thank you, but there is a duplicate values in pop, how do we remove it an replace it by 0?
Example:
pop = 6 0 1 1 4 become 6 0 1 0 4

Sign in to comment.

More Answers (1)

JESUS DAVID ARIZA ROYETH
JESUS DAVID ARIZA ROYETH on 14 Nov 2019
without repetition :
v1=[1 4 8 9 3 6 ];
v2=[v1 zeros(1,4)];% change the amount of 0 to increase the probability in this case there are 4
[~, ind] = sort(rand(10,length(v2)),2);
pop=v2(ind(:,1:4))

Tags

Community Treasure Hunt

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

Start Hunting!