How to index array with an array?

18 vues (au cours des 30 derniers jours)
xiaojuezi
xiaojuezi le 8 Déc 2021
Commenté : xiaojuezi le 8 Déc 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 commentaire
James Tursa
James Tursa le 8 Déc 2021
Please give a small numerical example of exactly how your 2D and 3D indexes are stored.

Connectez-vous pour commenter.

Réponse acceptée

Stephen23
Stephen23 le 8 Déc 2021
Modifié(e) : Stephen23 le 8 Déc 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
  1 commentaire
xiaojuezi
xiaojuezi le 8 Déc 2021
Thank you very much!!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Produits


Version

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by