如何根据另一个矩阵的值在矩阵中设置索引值

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)

如果没有循环我怎么能这样做?

cha*_*pjc 6

有几种方法可以实现这一目标,但这里有一个简短的方法:

[~,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)).