Matlab 按第一列的值在单元格数组的第二列中搜索

Matlab 按第一列的值在单元格数组的第二列中搜索,matlab,cell-array,Matlab,Cell Array,我在MATLAB中工作,我有以下单元阵列: pippo = 'FSize' [ 10] 'MSize' [ 10] 'rho' [ 997] 'u2' [ 86.2262] 'n' [ 100] 'nimp' [ 2] 'impeller1dir' [1x66 char] 'impelle

我在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。
有没有一种不涉及循环的简单方法,或者循环是唯一的方法?

两种方法是
容器。映射
逻辑索引


逻辑索引 首先,我们将使用
ind=strcmp(pippo(:,1),'nimp')
在第一列中找到输入的发生情况,然后在第二列中得到单元格的内容,其中这是真的
pippo{ind,2}

它可以与

out = pippo{strcmp(pippo(:,1),'nimp'),2}

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

pippo2=containers.Map(pippo(:,1),pippo(:,2))
然后,您可以使用键的参数调用容器,并将值作为输出

out=pippo2('nimp')

out =

     2

太神了我尝试了逻辑索引,但方法是:
ind=pippo(:,1)='nimp'
,方法是:
ind=pippo(:,1)='nimp'
。然而,两者都不起作用。我没想到strcmp!容器。地图技巧也很巧妙。谢谢!