按字符串搜索表格

时间:2016-10-20 13:48:02

标签: matlab

我正在用字符串搜索一个表,但即使我100%确定它在那里,我也找不到结果。正在运行genelist打印表:

>> Untitled

genelist = 

    Prot_Family     Gene  
    ___________    _______

    'Prx'          'PRDX1'
    'Prx'          'PRDX2'
    'Prx'          'PRDX3'
    'Trx'          'TXN'  
    'Trx'          'TXN2' 

但是运行此命令时找不到字符串:find(strcmp('PRDX2',genelist(:,2)))

strcmp('PRDX2',genelist(:,2))返回0.

我做错了什么?

1 个答案:

答案 0 :(得分:3)

发生这种情况的原因是,当您索引表时,即使这些索引范围上的所有内容都是相同的类型,MATLAB也只会返回另一个表。包括genelist(1,1)将只返回一个包含单个值的表。

这是因为表格不仅仅是它们在每个位置中包含的信息。它们还有列/行名称以及一些有关如何处理它们的其他信息。

因此,如果要比较您知道的字符串索引范围内的字符串,则需要将其转换为字符串。使用table2array作为:

find(strcmp('PRDX2',table2array(genelist(:,2))))