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

1 vue (au cours des 30 derniers jours)
PRANAY DISHAN
PRANAY DISHAN le 7 Fév 2018
Commenté : PRANAY DISHAN le 7 Fév 2018
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]

Réponses (2)

Roger Stafford
Roger Stafford le 7 Fév 2018
Modifié(e) : Roger Stafford le 7 Fév 2018
[m,n] = size(A);
Anew = A(randi(m,[1,n])+m*(0:n-1));

per isakson
per isakson le 7 Fév 2018
Modifié(e) : per isakson le 7 Fév 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

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by