2012-03-15 3 views
1

내가 텍스트 파일의 폴더를 검색하고 그리고 난으로 myText라는 새로운 배열로 발견 된 파일을 추가하고다음 오류가 두 배에서 셀로 변환 발생

이 내 코드

function fileList = removeElements(fileArray) 

x = 1; 
mytext = []; 

for idx = 1:numel(fileArray) 

if (~isempty(strfind(fileArray(idx),'.txt') )) 

    mytext(x) = fileArray(idx) 
    x=x+1; 

end 

end 

그러나 스피

??? The following error occurred converting from cell to double: 
Error using ==> double 
Conversion to double from cell is not possible. 

Error in ==> removeElements at 10 
     mytext(x) = fileArray(idx) 

내가이 문제를 어떻게 극복 할 수있는 오류가?

답변

2

문자열은 일반적으로 셀 배열에 저장됩니다. 그래서 당신은하지 (), {}와 인덱스가 필요합니다. 'TXT'를

mytext{x} = fileArray{idx}; 
+0

그러면 fileArray (idx)도 fileArray {idx} 여야합니까? – klijo

1

당신은 (

txtFiles = allFiles(cellfun(@(c)(~isempty(strfind('.txt',c))),allFiles)); 

를 통해 strfind을 ~ IsEmpty 함수를 목록에서 * .txt 인 파일을 선택할 수 있습니다 (C)) 구문은 문자열 c에 문자열 '.txt'가 포함되어 있으면 true를 반환하고 그렇지 않으면 false를 반환합니다. allFiles (...) 구조는 cellFun 구성이 true를 반환하는 셀 배열 allFiles의 해당 요소 만 포함하는 셀 배열을 반환합니다.

관련 문제