Filter löschen
Filter löschen

Access element of ND array specified by another array?

1 Ansicht (letzte 30 Tage)
Rohit Gupta
Rohit Gupta am 7 Jun. 2018
Kommentiert: Rohit Gupta am 7 Jun. 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.

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 7 Jun. 2018
Bearbeitet: Walter Roberson am 7 Jun. 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 Kommentar
Rohit Gupta
Rohit Gupta am 7 Jun. 2018
Thanks! I wanted to avoid doing something you mentioned below. First solution works.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

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

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by