2014-11-21 77 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];

相关问题