我正在用字符串搜索一个表,但即使我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.
我做错了什么?
答案 0 :(得分:3)
发生这种情况的原因是,当您索引表时,即使这些索引范围上的所有内容都是相同的类型,MATLAB也只会返回另一个表。包括genelist(1,1)
将只返回一个包含单个值的表。
这是因为表格不仅仅是它们在每个位置中包含的信息。它们还有列/行名称以及一些有关如何处理它们的其他信息。
因此,如果要比较您知道的字符串索引范围内的字符串,则需要将其转换为字符串。使用table2array
作为:
find(strcmp('PRDX2',table2array(genelist(:,2))))