2012-03-15 30 views
5

Mam tablicę zawierającą wszystkie pliki w określonym katalogu. Chcę usunąć wszystkie wpisy plików, które kończą się rozszerzeniem .txt. To co napisałemusuń element z tablicy matlab

function fileList = removeElements(fileArray)  

    for idx = 1:numel(fileArray) 

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

    end  

end 

ale pojawia się błąd

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

może ktoś proszę mi pomóc

Odpowiedz

1

>0 jest nie tak w tym przypadku. Zamiast tego użyj ~isempty(strfind(....)).

2

Można uniknąć funkcję i dla pętli z pojedynczym budowy linii

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

isEmpty() budowa zwraca prawdę, jeśli nazwa pliku nie nie obejmują „.txt”. Konstrukcja oldList (...) zwraca tablicę komórek elementów oldList, dla której struktura isempty zwraca wartość true.