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.

 Risposta accettata

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 Commento

Thanks! I wanted to avoid doing something you mentioned below. First solution works.

Accedi per commentare.

Più risposte (1)

doc sub2ind

1 Commento

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

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by