Subset multidimensional array using a vector

1 次查看(过去 30 天)
I have an array A of 7 dimensions, and a vector v of length 5.
I need to select a subset of A where the first five coordinates are the ones specified by V. I can accomplish this by:
A(v(1), v(2), v(3), v(4), v(5), :, :)
but it wont work if the length of v changes from one application to another. Is there any way straight forward way to go about this?
Thanks!!!

回答(1 个)

Matt J
Matt J 2019-9-10
编辑:Matt J 2019-9-10
idx=repmat({':'},1,ndims(A));
idx(1:numel(v))=num2cell(v);
result=A(idx{:});

Community Treasure Hunt

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

Start Hunting!

Translated by