How to index array with an array?

7 visualizaciones (últimos 30 días)
xiaojuezi
xiaojuezi el 8 de Dic. de 2021
Comentada: xiaojuezi el 8 de Dic. de 2021
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 comentario
James Tursa
James Tursa el 8 de Dic. de 2021
Please give a small numerical example of exactly how your 2D and 3D indexes are stored.

Iniciar sesión para comentar.

Respuesta aceptada

Stephen23
Stephen23 el 8 de Dic. de 2021
Editada: Stephen23 el 8 de Dic. de 2021
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

Más respuestas (0)

Categorías

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

Productos


Versión

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by