Access element of ND array specified by another array?

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

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
doc sub2ind

1 Kommentar

Thanks! But it also needs giving a1,a2,a3 and wont work for any general dimension.

Melden Sie sich an, um zu kommentieren.

Kategorien

Community Treasure Hunt

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

Start Hunting!

Translated by