how to select a random number from the existing matrix in each column

1 view (last 30 days)
Dear friends, I need to select a random number from each column from the existing matrix to create a new row as shown below: I'm new to matlab. So please help me with this. Thank you.
A=[1 2 3 4;5 6 7 8;9 10 11 12]
Anew=[5 2 7 12]

Answers (2)

Roger Stafford
Roger Stafford on 7 Feb 2018
Edited: Roger Stafford on 7 Feb 2018
[m,n] = size(A);
Anew = A(randi(m,[1,n])+m*(0:n-1));

per isakson
per isakson on 7 Feb 2018
Edited: per isakson on 7 Feb 2018
It's smarter to use a for-loop
>> A
A =
1 2 3 4
5 6 7 8
9 10 11 12
>> [nrow,ncol] = size(A);
>> ix = randi([1,nrow],[1,ncol])
ix =
3 1 3 1
>> A(sub2ind(size(A),ix,1:ncol))
ans =
9 2 11 4

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!