如何通过相应数值的向量有效地替换id向量

时间:2010-05-10 19:46:45

标签: matlab

假设有一个ids的矢量(或矩阵)

>  1 2 3 3 2

假设这些id中的每一个都对应于存储在另一个向量中的数值

  

14 33 25

我想用相应的值替换id以构建以下向量

  

14 33 25 25 33

必须有一种简单的方法来实现这一点,而不是诉诸于循环,但我的大脑此刻让我失望,我在文档中找不到任何东西。有什么想法吗?

2 个答案:

答案 0 :(得分:8)

假设:

x = [14 33 25]

ind = [1 2 3 3 2]

然后

x(ind) = 14 33 25 25 33

答案 1 :(得分:0)

对于它的价值,它也适用于python + numpy:

x = array([14,33,25])
ind = [0,1,2,2,1]
x[ind] # -> array([14, 33, 25, 25, 33])