假设现在我有一个矩阵在MATLAB与其他值替换指数矩阵
S = [1 1 1 2 2 2;
1 1 1 2 2 2;
2 2 2 2 1 1;
2 2 2 2 1 1;
2 2 2 2 1 1]
而另一矩阵
A = [1 2;
2 4]
A中的第一行是S的唯一指标,而第二行包含第一行中的值将被替换的值。也就是说,在S中所有的“1”将由2所取代,并且所有“2” S将4.更换最后,我会得到一个矩阵
SS = [2 2 2 4 4 4;
2 2 2 4 4 4;
4 4 4 4 2 2;
4 4 4 4 2 2;
4 4 4 4 2 2]
现在我做什么:
SS = zeros(size(S));
for i = 1:size(A,2)
SS(S==index(A(1, i)) = A(2,i);
end
现在,我有一个很大的矩阵,使用for循环有点慢。有没有更快的方法来做到这一点?
你说的 “1” 将通过 “2” S,被替换但是'SS'仍然有 “1” ...的错误呢? –
@EitanT对不起,已编辑。 – luvegood