2014-02-25 2 views
0

정렬 된 셀 배열 rawArrayData.textdata에 'chr1'이라는 문자열이 포함 된 행의 범위를 찾고 있는데, 그 행의 데이터만으로 작업 할 수 있습니다 (예 : 좌표 만). 주어진 염색체, chr1)에 :Matlab에서 셀 배열의 문자열을보고합니다.

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

나는 오류가 find의 부적절한 사용입니다 가정. 셀 어레이에서이 작업을 수행 할 수있는 방법이 있습니까? 또는 'chrX'의 인스턴스를 X로 변환하고 이중으로 변환하여 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} 
관련 문제