How to refer a high dimension matrix
1 view (last 30 days)
Show older comments
I have a high dimensional matrix A, two row vectors ind1 and ind2. The length of ind1 and ind2 is flexible but
length(size(A))==length(ind1)+length(ind2)
is always true. So how can I refer to the element of A whose index is (ind1(1),...ind1(end),ind2(1),...ind2(end))? Since the length of ind1 and ind2 is flexible, I couldn't simply write out every index.
0 Comments
Accepted Answer
Stephen23
on 7 Jul 2015
Edited: Stephen23
on 7 Jul 2015
This is exactly what sub2ind is for, it generates the linear indices corresponding to subscript indices. Try doing something like this (untested):
ids = num2cell([ind1,ind2]);
idx = sub2ind(size(A),ids{:});
A(idx) % access that element
3 Comments
James Tursa
on 7 Jul 2015
Edited: James Tursa
on 7 Jul 2015
ids is a cell array, but ids{:} is a comma separated list. E.g., see this link:
More Answers (0)
See Also
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!