matlab在使用mapobj映射的矩阵中插入新行

matlab在使用mapobj映射的矩阵中插入新行,matlab,Matlab,我的矩阵现在看起来像这样 1 225 230 300 4 333 442 678 7 798 782 128 1 248 842 482 Column 1是我映射到另一组数字的一系列数字。 比如说 KeySet = (1:42) ValueSet = (333, 222, 4444, 7778 etc etc to 42 numbers) mapObj = containers.Map(KeySet, ValueSet)

我的矩阵现在看起来像这样

1      225   230  300   
4      333   442  678
7      798   782  128
1      248   842  482
Column 1是我映射到另一组数字的一系列数字。 比如说

KeySet = (1:42)
ValueSet = (333, 222, 4444, 7778 etc etc to 42 numbers)
mapObj = containers.Map(KeySet, ValueSet)
现在,我想在我的原始矩阵Column 5中创建一个新的Column,它将根据参考映射的值集填充-因此第1行Column 5将是333,第2行Column 5将是7778,依此类推。 它本质上是从Column 5到映射的一个vlookup

我猜是这样的

mat(:,5) = mapObj(mat(:,1))   

您不能一次查询mapobject中的多个条目,我将使用arrayfun:

在您的示例中,键集为1:n,如果始终是这种情况,则使用数组而不是映射,速度更快,并且您可以一次索引多个条目

arrayfun(@(ix)mapObj(ix),mat(:,1))