Mapping indices of matrices with differing dimension

1 visualización (últimos 30 días)
Joshua Goglio
Joshua Goglio el 18 de Jul. de 2018
Editada: Guillaume el 18 de Jul. de 2018
This seems simple, but I cannot find an answer to my specific question. Take the matrices below:
x = [5 3 7 0 1];
y = [1 3 3 1; 2 2 2 2; 3 5 5 3; 1 3 3 1];
I'd like to create a new matrix 'z' that takes each element of 'y' and pulls the value of 'x' using the 'y' value as an index of 'x':
z = [5 7 7 5; 3 3 3 3; 7 1 1 7; 5 7 7 5];
Kind of like x(y) but for matrices of differing dimension.
My real question is whether this can be done without a for loop, since I'm new to MATLAB and not as familiar with matrix manipulation as I could be.

Respuesta aceptada

Guillaume
Guillaume el 18 de Jul. de 2018
Editada: Guillaume el 18 de Jul. de 2018
Well have you try x(y)? It will give you exactly your desired z.
Note that the rule of A(B) indexing is that it is the same shape as B unless both A and B are vectors (in which case, absurdly, it is the same shape as A).

Más respuestas (0)

Categorías

Más información sobre Logical en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by