2012-03-15 149 views
5

tôi có một mảng chứa tất cả các tệp trong một thư mục cụ thể. Tôi muốn xóa tất cả các mục nhập tệp kết thúc bằng phần mở rộng .txt. Đây là những gì tôi đã viếtxoá phần tử khỏi mảng MATLAB

function fileList = removeElements(fileArray)  

    for idx = 1:numel(fileArray) 

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

    end  

end 

nhưng tôi nhận được một lỗi

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

có thể ai đó hãy giúp tôi

Trả lời

1

>0 là sai trong trường hợp này. Sử dụng ~isempty(strfind(....)) để thay thế.

2

Bạn có thể tránh được những chức năng và cho vòng lặp với việc xây dựng dòng

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

Các isEmpty() xây dựng trả về true nếu tên tập tin không bao gồm '.txt'. Cấu trúc oldList (...) trả về một mảng ô của các phần tử của oldList mà cấu trúc isempty trả về true.

Các vấn đề liên quan