2014-02-25 50 views
0

我在查找包含字符串'chr1'的排序單元格數組rawArrayData.textdata中的行的範圍,以便我可以使用這些行中的數據(例如,只是座標特定染色體,CHR 1)上:Matlab查找單元格數組中的字符串,報告行

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

我相信錯誤是使用不當造成的find。有沒有辦法與單元格陣列做到這一點?或者,有沒有辦法將'chrX'的實例轉換爲X,將其轉換爲double,並使用find

我用this answer作爲起點,如果有幫助的話。

我很新這東西 - 如果有任何其他信息,我可以提供我會這樣做。

非常感謝。

+0

你能提供'rawArrayData.textdata'的示例內容? – Marcin

回答

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} 
相關問題