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.

 Accepted Answer

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 Comment

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

Sign in to comment.

More Answers (1)

doc sub2ind

1 Comment

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

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!