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 Kommentar

James Tursa
James Tursa am 8 Dez. 2021
Please give a small numerical example of exactly how your 2D and 3D indexes are stored.

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Stephen23
Stephen23 am 8 Dez. 2021
Bearbeitet: Stephen23 am 8 Dez. 2021

0 Stimmen

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

Weitere Antworten (0)

Kategorien

Produkte

Version

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by