通过第一列的值在单元格数组的第二列中搜索

时间:2014-05-07 08:44:13

标签: matlab cell-array

我在MATLAB工作,我有以下单元格数组:

pippo = 

'FSize'           [       10]
'MSize'           [       10]
'rho'             [      997]
'u2'              [  86.2262]
'n'               [      100]
'nimp'            [        2]
'impeller1dir'    [1x66 char]
'impeller2dir'    [1x66 char]
'comparedir'      [1x57 char]

我想在第二列中返回单元格的内容,该内容对应于第一行第一列中单元格的给定值。即,如果输入是' nimp',我想返回2。 有没有一种简单的方法可以做到这一点,不涉及循环,或循环是唯一的方法?

1 个答案:

答案 0 :(得分:1)

执行此操作的两种方法是containers.Maplogical indexing


逻辑索引

首先,我们将使用strcmpind=strcmp(pippo(:,1),'nimp')的第一列中找到输入的出现,然后在第二列中获取该单元格的内容,其中这是真的pippo{ind,2} < / p>

可以与

组合成一行
out = pippo{strcmp(pippo(:,1),'nimp'),2}

containers.Map

使用containers.Map您可以将第一列中的键映射到第二列中的值,此信息存储为容器,下面是pippo2变量

pippo2=containers.Map(pippo(:,1),pippo(:,2))

然后你可以使用键的参数调用容器并获取值作为输出

out=pippo2('nimp')

out =

     2