2011-09-02 32 views

Trả lời

18

Sử dụng dir() để lấy danh sách tên tệp. Bạn có thể chỉ định các ký tự đại diện.

4

Bạn có thể sử dụng

fileName=ls('*xyz').

biến fileName sẽ có danh sách tất cả các tên tập tin mà bạn có thể sử dụng trong vòng lặp for

+2

Hãy cẩn thận, [ls] (http://www.mathworks.de/help/techdoc/ref/ls.html) trả về một cú pháp khác nhau trên Windows hoặc Unix! –

+0

Thao tác này sẽ ghi khoảng trống vào tên tệp và làm cho chúng có chiều dài bằng nhau, điều này không tốt. – LWZ

+1

@LWZ: không gian không cần thiết có thể được loại bỏ bằng chức năng strtrim tiêu chuẩn. –

25

Như những người khác đã đề cập, bạn nên sử dụng chức năng DIR liệt kê các file trong một thư mục.

Nếu bạn vẫn đang tìm kiếm, đây là một ví dụ cho thấy làm thế nào để sử dụng chức năng:

dirName = 'C:\path\to\folder';    %# folder path 
files = dir(fullfile(dirName,'*.xyz')); %# list all *.xyz files 
files = {files.name}';      %'# file names 

data = cell(numel(files),1);    %# store file contents 
for i=1:numel(files) 
    fname = fullfile(dirName,files{i});  %# full path to file 
    data{i} = myLoadFunction(fname);  %# load file 
end 

Tất nhiên, bạn sẽ phải cung cấp các chức năng mà thực sự đọc và phân tích các tập tin XYZ.

0

Dưới đây là câu trả lời của tôi:

dirName = 'E:\My Matlab\5'; 
[sub,fls] = subdir(dirName); 
D = []; 
j = 1; 
for i=1:length(sub), 
    files{i} = dir(fullfile(sub{i},'*.xyz')); 
    if length(files{i})==1 
     D(j) = i; 
     files_s{j} = sub{i}; 
     j=j+1; 
    end 
end 

varaible files_s trả về đường dẫn mong muốn có chứa những loại dữ liệu cụ thể!

Chức năng subdir thể được tìm thấy tại địa chỉ: http://www.mathworks.com/matlabcentral/fileexchange/1492-subdir--new-

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