moo*_*ies 2 matlab matrix vectorization
说我有一个矩阵 A
A =
0 1 2
2 1 1
3 1 2
Run Code Online (Sandbox Code Playgroud)
和另一个矩阵 B
B =
0 42
1 24
2 32
3 12
Run Code Online (Sandbox Code Playgroud)
我想将每个值替换A为与之关联的值B.
我会得到的
A =
42 24 32
32 24 24
12 24 32
Run Code Online (Sandbox Code Playgroud)
如果没有循环我怎么能这样做?
有几种方法可以实现这一目标,但这里有一个简短的方法:
[~,ind]=ismember(A,B(:,1));
Anew = reshape(B(ind,2),size(A))
Run Code Online (Sandbox Code Playgroud)
如果您可以假设第一列B始终0:size(B,1)-1是,则更容易,变得公正reshape(B(A+1,2),size(A)).