2012-03-15 49 views
5

私は特定のディレクトリ内のすべてのファイルを含む配列を持っています。 .txt拡張子で終わるすべてのファイルエントリを削除したいと思います。これは私が配列matlabから要素を削除

function fileList = removeElements(fileArray)  

    for idx = 1:numel(fileArray) 

    if (strfind(fileArray(idx),'.txt') > 0) 
    display('XX'); 
    fileArray(idx) =[]; 
    end  

    end  

end 

を書かれているものですが、私はエラー

??? Undefined function or method 'gt' for input arguments of type 'cell'. 
    Error in ==> removeElements at 6 
     if(strfind(fileArray(idx),'.bmp') > 0) 

誰かが

答えて

1

>0、この場合には間違っている私を助けてくださいすることができます取得します。代わりに~isempty(strfind(....))を使用してください。

2

あなたは、単一のライン建設

% strip-out all '.txt' filenames 
newList = oldList(cellfun(@(c)(isempty(strfind('.txt',c))),oldList)); 

ファイル名がないは「.TXT」を含まない場合のisEmpty()の建設がtrueを返すと機能とforループを回避することができます。 oldList(...)コンストラクタは、isempty構造体がtrueを返すoldListの要素のセル配列を返します。

関連する問題