How to index array with an array?

18 次查看(过去 30 天)
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
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

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

产品


版本

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by