我想在一个大矩阵中查找和替换数字A
。向量B
和C
具有相同的维度并包含值。即使A
可能包含非唯一值,它也包含B
. 我想搜索A
中的所有值B
并将它们替换为 中的相应值C
。
例如,令 A 为 2.5·10 6 ×4 矩阵。B
并且C
是 1.5·10 6 ×1 并且具有唯一值。我尝试使用以下 for 循环:
for q = 1:size(B, 1)
A(A == B(q, 1)) = C(q, 1);
end
但这很慢。有没有更快的方法来做到这一点?
我想在一个大矩阵中查找和替换数字A
。向量B
和C
具有相同的维度并包含值。即使A
可能包含非唯一值,它也包含B
. 我想搜索A
中的所有值B
并将它们替换为 中的相应值C
。
例如,令 A 为 2.5·10 6 ×4 矩阵。B
并且C
是 1.5·10 6 ×1 并且具有唯一值。我尝试使用以下 for 循环:
for q = 1:size(B, 1)
A(A == B(q, 1)) = C(q, 1);
end
但这很慢。有没有更快的方法来做到这一点?
想到的最直接的解决方案是使用ismember
:
[tf, loc] = ismember(A, B);
A(tf) = C(loc(tf));