假设我有一个由整数组成的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
有关加快这一点的想法吗?
感谢。
答案 0 :(得分:3)
首先使用A
展平A=A(:)
,这将生成单个线性索引而不是row,col。
然后只使用逻辑索引。例如:
B=zeros(size(IDX));
for n=1:numel(A)
B(IDX==A(n))=n;
end