Mapping indices of matrices with differing dimension

3 ビュー (過去 30 日間)
Joshua Goglio
Joshua Goglio 2018 年 7 月 18 日
編集済み: Guillaume 2018 年 7 月 18 日
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.

採用された回答

Guillaume
Guillaume 2018 年 7 月 18 日
編集済み: Guillaume 2018 年 7 月 18 日
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).

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by