查找和替换大型矩阵中元素的最快方法是什么?

时间:2013-10-28 03:16:59

标签: matlab

我想找到并替换大矩阵A中的数字。向量BC具有相同的维度并包含值。即使A可能包含非唯一值,但它的所有数字都为B。我想在A中搜索B中的所有值,并将其替换为C中的相应值。

例如,令A为2.5·10 6 ×4矩阵。 BC为1.5·10 6 ×1且具有唯一值。我尝试使用以下for循环:

for q = 1:size(B, 1)
    A(A == B(q, 1)) = C(q, 1);
end

但它很慢。有更快的方法吗?

1 个答案:

答案 0 :(得分:5)

想到的最简单的解决方案是使用ismember

[tf, loc] = ismember(A, B);
A(tf) = C(loc(tf));