从数组matlab中删除元素

时间:2012-03-15 07:53:46

标签: matlab

我有一个包含特定目录中所有文件的数组。我想删除所有以.txt扩展名结尾的文件条目。这就是我写的

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 )

有人可以帮助我吗

2 个答案:

答案 0 :(得分:3)

您可以使用单行构造来避免函数和for循环

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

如果文件名包含'.txt',则isempty()构造返回true。 oldList(...)构造返回oldList元素的单元格数组,isempty构造返回true。

答案 1 :(得分:2)

在这种情况下,

>0是错误的。请改用~isempty(strfind(....))