How to refer a high dimension matrix

1 次查看(过去 30 天)
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.

采纳的回答

Stephen23
Stephen23 2015-7-7
编辑:Stephen23 2015-7-7
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 个评论
Shichu Zhu
Shichu Zhu 2015-7-8
I see. ids{:} is equivalent to typing out every element of it explicitly,
ids{1},ids{2},ids{3},....ids{end}
which is exactly the index for reference!

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by