Filter löschen
Filter löschen

How to transpose values of arrays between matrices

2 Ansichten (letzte 30 Tage)
bsriv
bsriv am 25 Okt. 2018
Kommentiert: bsriv am 25 Okt. 2018
Hi I'm stuck and would be very grateful for any help[- So I have two correlation matrices, all values between -1 and 1: x: 59412x84 y: 59412x315
I have another array z which is 91282x1, which is all zeros except for indices 59472:59555 which are either 1, 2, or 3. LCorr So, I corr(x,y) to get an 84x315 correlation matrix (I'll call it corrxy).
Then I want a winner take all of the columns so I do [~,Indices]=max(abs(corrxy), which produces a 1x315 array with values at each index between 1 and 84. So far so good.
Those values (1 to 84) correspond to the values in "z" (1,2,3) as described above; however it's not the exact indices 1:84 it's the 84 indices 59472:59555. So the issue that's vexing me is how to replace the 315 "1 to 84" values in "Indices" with their corresponding 1,2,or,3 from Z in order to get a 1x315 array with values 1,2,or 3.
Thanks!!!

Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 25 Okt. 2018
Bearbeitet: Andrei Bobrov am 25 Okt. 2018
z = z(:)';
zz = z(59472:59555);
out = zz(Indices);

Weitere Antworten (0)

Kategorien

Mehr zu Software Development Tools finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by