2014-04-08 1562 views
0

我想讀取特定文件夾中的.PGM文件。讀取matlab中特定文件夾中的所有文件?

這是我認爲把所有的.PGM文件

a = 'D:\Matlab\Training\Training_PGM_All\'; 

特定的文件夾,我嘗試讀取該文件夾

 tmpdir = dir([a, '*']); 

我仍然無法讀取那些文件內的所有文件。我不想直接在代碼中指定路徑。所以我想將目錄保存在一個變量中,然後我將在代碼中調用該變量。

什麼是錯的代碼..

+0

你是不是需要使用'* .pgm'? – Divakar

回答

0

我沒有看到這個問題。適用於我的作品:)

a = 'D:\Matlab\Training\Training_PGM_All\'; 
Files=dir(a); 
for k=1:length(Files) 
    FileNames=Files(k).name 
end 
0

實際上,讀取目錄中的所有文件都涵蓋在MATLAB常見問題中。給出的一個例子是

% Read files file1.txt through file20.txt, mat1.mat through mat20.mat 
% and image1.jpg through image20.jpg. Files are in the current directory. 
for k = 1:20 
    matFilename = sprintf('mat%d.mat', k); 
    matData = load(matFilename); 
    jpgFilename = strcat('image', num2str(k), '.jpg'); 
    imageData = imread(jpgFilename); 
    textFilename = ['file' num2str(k) '.txt']; 
    fid = fopen(textFilename, 'rt'); 
    textData = fread(fid); 
    fclose(fid); 
end 

另一個例子是

myFolder = 'C:\Documents and Settings\yourUserName\My Documents\My Pictures'; 
if ~isdir(myFolder) 
    errorMessage = sprintf('Error: The following folder does not exist:\n%s', myFolder); 
    uiwait(warndlg(errorMessage)); 
    return; 
end 
filePattern = fullfile(myFolder, '*.jpg'); 
jpegFiles = dir(filePattern); 
for k = 1:length(jpegFiles) 
    baseFileName = jpegFiles(k).name; 
    fullFileName = fullfile(myFolder, baseFileName); 
    fprintf(1, 'Now reading %s\n', fullFileName); 
    imageArray = imread(fullFileName); 
    imshow(imageArray); % Display image. 
    drawnow; % Force display to update immediately. 
end 

來源:http://matlab.wikia.com/wiki/FAQ

相關問題