说我有一个矩阵A
如何在基于矩阵的另一个矩阵的值设置索引值
A =
0 1 2
2 1 1
3 1 2
和另一个矩阵B
B =
0 42
1 24
2 32
3 12
我想通过替换A
每个值与B
相关的一个。
我会获得
A =
42 24 32
32 24 24
12 24 32
我该怎么办,如果没有循环?
说我有一个矩阵A
如何在基于矩阵的另一个矩阵的值设置索引值
A =
0 1 2
2 1 1
3 1 2
和另一个矩阵B
B =
0 42
1 24
2 32
3 12
我想通过替换A
每个值与B
相关的一个。
我会获得
A =
42 24 32
32 24 24
12 24 32
我该怎么办,如果没有循环?
有几种方法可以做到这一点,但这里是一个短的一个
[~,ind]=ismember(A,B(:,1));
Anew = reshape(B(ind,2),size(A))
如果可以假设的B
第一列始终0:size(B,1)-1
,那么就比较容易,成为刚刚reshape(B(A+1,2),size(A))
。
+1,可能比我的解决方案更快。 – Daniel
+1。非常整洁的解决方案! –