2012-03-15 90 views
5

tengo una matriz que contiene todos los archivos en un directorio particular. Quiero eliminar todas las entradas de archivo que terminan con la extensión .txt. Esto es lo que he escritoeliminar elemento de la matriz matlab

function fileList = removeElements(fileArray)  

    for idx = 1:numel(fileArray) 

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

    end  

end 

pero me da un error de

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

por favor alguien puede ayudar

Respuesta

1

>0 está mal en este caso. Use ~isempty(strfind(....)) en su lugar.

2

Usted puede evitar la función y para-loop con la construcción de una sola línea

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

La construcción IsEmpty() devuelve verdadero si el nombre de archivo hace no incluyen '.txt'. La construcción oldList (...) devuelve una matriz de elementos de oldList para la cual la construcción isempty devuelve true.

Cuestiones relacionadas