Reshaping a matrix and binding two values together
古いコメントを表示
Hello dear Matlab Community!
Since I am a total novice in Matlab I'm stuck with the following, probably easily solvable, problem.
I have a matrix in the following arrangement:
20 9
12 4
3 15
6 7
. .
. .
and so forth, the integers of each column reach from 1 to 20 and are paired with an integer from the other column. The same integers cannot be paired, so for example 14 14 would be impossible.
I want to present randomized pairings of stimuli.
So, firstly I need to rearrange my two columns to this from: 20 9 12 4 3 15 6 7...
Does anybody know how to do this?
And secondly, I want to bind every 2 integers and then shuffle them. For example, 20 and 9 are bound, 12 and 4 are bound, 3 and 15 are bound and so forth. And then shuffle them, so a new arrangement might be: 12 4 20 9 3 15...
I would very much appreciate any help!
Thanks in advance and best Regards!
回答 (1 件)
KSSV
2020 年 7 月 28 日
iwant = reshape(randperm(20),10,2) ;
8 件のコメント
Rupert Steinmeier
2020 年 7 月 28 日
編集済み: Rupert Steinmeier
2020 年 7 月 28 日
KSSV
2020 年 7 月 28 日
If A is your m*2 matrix
A = A' ;
iwant = A(:)'
Is this what you want?
Rupert Steinmeier
2020 年 7 月 28 日
My first answer helps for this.
A = rand(10,2) ;
A = A' ;
A = A(:)' ;
idx = reshape(randperm(length(A)),10,2) ;
A = A(idx)
Rupert Steinmeier
2020 年 7 月 28 日
KSSV
2020 年 7 月 28 日
idx = reshape(randperm(length(A)),[],2) ;
It seems you have more than 20 elements....
Rupert Steinmeier
2020 年 7 月 28 日
KSSV
2020 年 7 月 28 日
Read about randperm.
カテゴリ
ヘルプ センター および File Exchange で Creating and Concatenating Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!