2016-04-08 12 views
0

Matlab'a yeni çıkıyorum. Aşağıda kodum var. Birden çok klasör nasıl okunur. Döngü kullanarak biliyorum ama bir şekilde google onu bulamıyorum. Ayrıca, aşağıda yazdığımlar myA klasörü için. FeatureVector, aynı matta nasıl yerleştirilir myA, myB, myC için AllTrain? Klasör görüntüyü içerir.Birden çok klasör matlabına erişme ve aynı matu depoda tutma

clear all; 
clc; 

trainlabel = []; 
featureVector = []; 
AllTrain = []; 

% Specify the folder 
myA = 'C:\Users\NotComplex\a'; 
myB = 'C:\Users\NotComplex\b'; 
myC = 'C:\Users\NotComplex\c'; 

for k = 1 : length(theFiles) 
baseFileName = theFiles(k).name; 
fullFileName = fullfile(myA, baseFileName); 
fprintf(1, 'Now reading %s\n', fullFileName); 
% Now imread the file 
imageArray = imread(fullFileName); 
imageEdge = edge(imageArray, 'canny', 0.4); 

a_inv_mom = Hu_Moments(imageEdge); 
format short 
a_inv_mom_normal = -sign(a_inv_mom).*(log10(abs(a_inv_mom))); 

featureVector = cat(1,a_inv_mom_normal); 
AllTrain(k,:) = [featureVector k]; 

% imshow(imageEdge); % Display image. 
drawnow % Force display to update immediately. 
end 
+0

biraz yardım bekliyorsanız : "Dosyalar" ın içeriği nedir? – DVarga

+0

Belki sorunuz sorumlusudur. Bunu deneyin: http://stackoverflow.com/questions/11980192/matlab-multiple-folders?rq=1 –

+0

filePattern = fullfile (myA, '* .pgm'); theFiles = dir (filePattern); Kodu yapıştırmayı unuttum. afedersiniz. @DVarga. – Afiq

cevap

0

kompakt olmak için:

folderCell = {'C:\Users\NotComplex\a', 'C:\Users\NotComplex\b', 'C:\Users\NotComplex\c'}; 

theFiles = cellfun(@(x) fullfile(x, '*.pgm'), folderCell, 'UniformOutput', false); 

Sonra, Döngünüzden devam edebilirsiniz theFiles üç dizinleri tümünden .pgm tüm dosyaları içerecektir

İlgili konular