2014-11-21 103 views

回答

1

a是否僅由[1:5]中的值組成?您的問題標題顯示您希望使用a的值作爲b的索引。你可以直接這樣做:

a = b(a); 
+0

'a'完全由[1:5]中的值組成,但可能不是全部。即「a」可能是「[2 3 1 1 5]」,而「b = [0 0 10 10 10]」。結果應該是:'[0 10 0 0 10]' – 2014-11-21 20:33:35

+0

是的,這是有效的。它不必包含所有這些。你的測試案例工作正常。 – Peter 2014-11-21 20:35:54

0

這是有點亂,但它的工作原理,

a = randi(9,[5 5]); 
i = 1 : 5; 
b = [5 7 8 9 2]; 
[c,loc] = ismember(a,i); 
loc = reshape(loc,1,[]); 
loc(loc>0) = b(loc(loc>0)); 
loc = reshape(loc,size(c)); 
a.* ~c + loc .* c 

例如,

aold = 

7  2  8  1  8 
9  1  9  3  3 
4  9  1  1  2 
2  8  8  5  1 
1  7  7  5  4 


anew = 

7  7  8  5  8 
9  5  9  8  8 
9  9  5  5  7 
7  8  8  2  5 
5  7  7  2  9 

b = [5 7 8 9 2];

相關問題