Matlab在单元格数组中查找字符串,报告行

时间:2014-02-25 02:31:17

标签: string matlab indexing find cell

我正在寻找一系列在排序的单元格数组rawArrayData.textdata中包含字符串'chr1'的行,以便我可以只使用这些行中的数据(例如,只是给定染色体上的坐标,chr1):< / p>

chromCols = find([rawArrayData.textdata{:,1}] == 'chr1'); Error using == Matrix dimensions must agree.

我认为错误是find的错误使用。有没有办法用单元格数组做到这一点?或者,有没有办法将'chrX'的实例转换为X,将其转换为double并使用find

我使用this answer作为起点,如果有帮助的话。

我对这些东西很陌生 - 如果我能提供任何其他信息,我会这样做。

非常感谢。

1 个答案:

答案 0 :(得分:1)

如果您的rawArrayData.textdata如下所示,您可以执行以下操作:

rawArrayData.textdata = {'chr4'; 'chr1'; 'chr2'; 'chr1' };

chromCols = find(cellfun(@(s) strcmp(s, 'chr1') == 1, ...
                    rawArrayData.textdata));

% chromCols = [2, 4]    

% get only chromCols rows
rawArrayData.textdata{chromCols, 1}