2012-03-15 19 views
5

Belirli bir dizindeki tüm dosyaları içeren bir dizilim var. .txt uzantısı ile biten tüm dosya girişlerini kaldırmak istiyorum. Bu i Öğe dizisini kaldırmak için matlab

function fileList = removeElements(fileArray)  

    for idx = 1:numel(fileArray) 

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

    end  

end 

yazdım ama

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

birisi

cevap

1

>0 bu durumda yanlış bana lütfen yardım edebilir bir hata alıyorum budur. Bunun yerine ~isempty(strfind(....)) kullanın.

2

Sen tek satır inşaat

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

dosya değil '.txt' dahil yaparsa IsEmpty() inşaat true döndürür ile fonksiyon ve For döngüsü önleyebilirsiniz. OldList (...) inşası, isminizin inşasının doğru bir şekilde geri döndüğü, eskiList öğelerinin bir hücre dizisini döndürür.