如何在Matlab中找到矩阵中一个向量元素的索引?

时间:2013-05-31 21:14:42

标签: matlab matrix indexing vectorization

假设我有一个由整数组成的9x9矩阵A.我有另一个矩阵IDX,它是2500x4,由A中的相同整数组成。我想在矩阵A中找到IDX中所有值的索引。

这就是我所拥有的:

for ii=1:length(IDX)
     Mat_idx=ismember(A,IDX(ii,:));
     [StatIdxX StatIdxY] = find(Mat_idx);
end

现在对于每个ii,StatIdxX和StatIdxY是矩阵A中IDX的行和col索引。这很慢,罪魁祸首是ismember

有关加快这一点的想法吗?

感谢。

1 个答案:

答案 0 :(得分:3)

首先使用A展平A=A(:),这将生成单个线性索引而不是row,col。 然后只使用逻辑索引。例如:

B=zeros(size(IDX));
for n=1:numel(A)
B(IDX==A(n))=n;
end