如何基于另一个矩阵的值在矩阵中设置索引值 [英] How to set an indexed value in a matrix based on another matrix's values

查看:228
本文介绍了如何基于另一个矩阵的值在矩阵中设置索引值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

说我有一个矩阵A

A =
 0     1     2
 2     1     1
 3     1     2

和另一个矩阵B

B =
 0    42
 1    24
 2    32
 3    12

我想用B中与之关联的值替换A中的每个值.

I want to replace each value in A by the one associated to it in B.

我会得到

A =
 42     24     32
 32     24     24
 12     24     32

如何做到没有循环?

推荐答案

有几种方法可以完成此操作,但这是一个简短的方法:

There are several ways to accomplish this, but here is an short one:

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

If you can assume that the first column of B is always 0:size(B,1)-1, then it is easier, becoming just reshape(B(A+1,2),size(A)).

这篇关于如何基于另一个矩阵的值在矩阵中设置索引值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆