从Matlab键矩阵和查找向量导出Matlab值矩阵

时间:2016-03-29 07:47:19

标签: matlab

我有1:1:7范围内的整数键的Matlab对象,例如

[3, 1, 4, 5, 6]

我还有一个7号向量,其中包含每个整数键的关联值,例如

vals = (10, 20, 30, 4000, 50, 60, 70)

使用键作为索引创建值矩阵的最有效方法是什么,例如矩阵

[30, 10, 4000, 50, 60]

(实际上关键对象是6D)。我必须循环吗?

2 个答案:

答案 0 :(得分:3)

对于1D矩阵的情况,一般方法可以是:

keys=[3, 1, 4, 5, 6];
vals = [10, 20, 30, 4000, 50, 60, 70]
m=vals(keys)

使用此方法,您可以使用keys数组中存储的值作为vals数组的索引。您可以找到有关array insdexing here

的更多信息

更常见的情况是keysn行(以下示例中为3):

keys=[3, 1, 4, 5, 6;
      1 3 2 4 6 ;
      7 6 5 4 3];
vals = [10, 20, 30, 4000, 50, 60, 70]

m=reshape(vals(keys(:)),size(keys))

希望这有帮助。

Qapla'

答案 1 :(得分:1)

我认为这应该有效。如果我有问题的话。

inds = [3, 1, 4, 5, 6];

vals = inds;

vals(vals==1) = 10;
vals(vals==2) = 20;
vals(vals==3) = 30;
vals(vals==4) = 4000;
vals(vals==5) = 50;
vals(vals==6) = 60;

是这样的吗?