假設現在我有一個矩陣在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