[英]How do I find the indices of the elements of one vector in a matrix in Matlab?
假設我有一個9x9的矩陣A,它由整數組成。 我有另一個2500x4矩陣IDX,它由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
有什么想法可以加快速度嗎?
謝謝。
首先使用A=A(:)
展平A
,這將形成單個線性索引,而不是row,col。 然后,只需使用邏輯索引即可。 例如:
B=zeros(size(IDX));
for n=1:numel(A)
B(IDX==A(n))=n;
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.