I want to index across multiple dimensions using a vector, as opposed to comma notation
Show older comments
E.g.
I have a matrix A. This matrix will have a different number of dimensions depending upon what is input to my function.
I want to be able to use a vector(i.e. IndexingVector = [2 3 4 5]) to get the information I need:
A(IndexingVector) would be the same as saying A(2,3,4,5).
This means that if A happens to have a different number of dimensions when the function has different inputs, I could still use IndexingVector to get the information I need.
Thanks
Answers (1)
Lets first create some fake data:
>> A = randi(9,4,3,2); % the data
>> V = [3,2,1]; % the indices in a vector
>> C = num2cell(V);
>> A(3,2,1) % writing it out
ans =
7
>> A(C{:})
ans =
7
>> A(sub2ind(size(A),C{:}))
ans =
7
>> subsref(A,struct('type','()','subs',{num2cell(V)}))
ans =
7
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!