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

1 回表示 (過去 30 日間)
PRANAY DISHAN
PRANAY DISHAN 2018 年 2 月 7 日
コメント済み: PRANAY DISHAN 2018 年 2 月 7 日
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]

回答 (2 件)

Roger Stafford
Roger Stafford 2018 年 2 月 7 日
編集済み: Roger Stafford 2018 年 2 月 7 日
[m,n] = size(A);
Anew = A(randi(m,[1,n])+m*(0:n-1));

per isakson
per isakson 2018 年 2 月 7 日
編集済み: per isakson 2018 年 2 月 7 日
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

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by