How to index array with an array?

Hi I want to index an element in an array. The array u can be 1D, 2D or 3D, and I have an index id which is 1D, 2D or 3D. I'm currently doing:
u(id) = val;
This works fine in the 1D case. However, for 2D cases, where id = [row,column], this line doesn't set the 2D array correctly. For example:
u = [0 0 0;
0 0 0;
0 0 0];
% Access element at row 2, column 1
id = [2,1]
u(id) = 1; % Not always setting the desired element
Similarly in 3D, id = [widthId, heightId, depthId].
Is there a way to solve this?
Thank you very much!

1 件のコメント

James Tursa
James Tursa 2021 年 12 月 8 日
Please give a small numerical example of exactly how your 2D and 3D indexes are stored.

サインインしてコメントする。

 採用された回答

Stephen23
Stephen23 2021 年 12 月 8 日
編集済み: Stephen23 2021 年 12 月 8 日

0 投票

u = [11,12,13;21,22,23;31,32,33]
u = 3×3
11 12 13 21 22 23 31 32 33
% Access element at row 2, column 1
id = [2,1]
id = 1×2
2 1
ic = num2cell(id);
u(ic{:})
ans = 21

1 件のコメント

xiaojuezi
xiaojuezi 2021 年 12 月 8 日
Thank you very much!!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeResizing and Reshaping Matrices についてさらに検索

製品

リリース

R2021b

質問済み:

2021 年 12 月 8 日

コメント済み:

2021 年 12 月 8 日

Community Treasure Hunt

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

Start Hunting!

Translated by