Borrar filtros
Borrar filtros

How to transpose values of arrays between matrices

2 visualizaciones (últimos 30 días)
bsriv
bsriv el 25 de Oct. de 2018
Comentada: bsriv el 25 de Oct. de 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!!!

Respuesta aceptada

Andrei Bobrov
Andrei Bobrov el 25 de Oct. de 2018
Editada: Andrei Bobrov el 25 de Oct. de 2018
z = z(:)';
zz = z(59472:59555);
out = zz(Indices);

Más respuestas (0)

Categorías

Más información sobre Software Development Tools en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by