Effacer les filtres
Effacer les filtres

Access element of ND array specified by another array?

1 vue (au cours des 30 derniers jours)
Rohit Gupta
Rohit Gupta le 7 Juin 2018
Commenté : Rohit Gupta le 7 Juin 2018
I have a N1 x N2 x N3 dimension Tensor T. Plus I have a 1 x 3 array a = [a1 a2 a3]. How do I access element T(a1,a2,a3). Is there any way to do this for N dimension.

Réponse acceptée

Walter Roberson
Walter Roberson le 7 Juin 2018
Modifié(e) : Walter Roberson le 7 Juin 2018
acell = num2cell(a);
T(acell{:})
There are also ways to calculate the location as a linear index based upon size(T)
Ts = size(T):
La = length(a);
Ts(end+1:La) = 1;
idx = a(1) + sum((a(2:end)-1) .* cumprod(Ts(1:La-1)))
T(idx)
... if I didn't miss something.
  1 commentaire
Rohit Gupta
Rohit Gupta le 7 Juin 2018
Thanks! I wanted to avoid doing something you mentioned below. First solution works.

Connectez-vous pour commenter.

Plus de réponses (1)

James Tursa
James Tursa le 7 Juin 2018
  1 commentaire
Rohit Gupta
Rohit Gupta le 7 Juin 2018
Thanks! But it also needs giving a1,a2,a3 and wont work for any general dimension.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by