我正在寻找一系列在排序的单元格数组rawArrayData.textdata中包含字符串'chr1'的行,以便我可以只使用这些行中的数据(例如,只是给定染色体上的坐标,chr1):< / p>
chromCols = find([rawArrayData.textdata{:,1}] == 'chr1');
Error using ==
Matrix dimensions must agree.
我认为错误是find
的错误使用。有没有办法用单元格数组做到这一点?或者,有没有办法将'chrX'的实例转换为X,将其转换为double并使用find
?
我使用this answer作为起点,如果有帮助的话。
我对这些东西很陌生 - 如果我能提供任何其他信息,我会这样做。
非常感谢。
答案 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}