2015-07-24 2 views
-2

Мне нужно написать файл Excel во многие папки (папку *) под D: \ и перебрать их для дальнейшей обработки отдельно.напишите файл excel во многие папки в каталоге с помощью matlab

я попытался следующий код в течение длительного времени ..

srcFolders = dir('D:\folder*'); 
for i = 1 : length(srcFiles) 
    filename = strcat(path,'\',srcFiles(i).name); 
    xlswrite('srcFolders\filename.xls', srcFolders(folder).name,'Sheet1', folder_range); 
end 

ответ

1

Я предполагаю, что вы хотите писать различные наборы данных в файл Excel и просто возникли некоторые проблемы. Если это не точный комментарий и дайте мне знать.

%Just generating some arbitrary data 
data = arrayfun(@(m,n) rand(m,n), randi(50, 9, 1), randi(50, 9, 1), 'uni', 0); 

%The base file path 
path = 'D:'; 

%The pattern used to choose the folders 
folderPattern = 'folder*'; 

%The files you want to write to 
srcFiles = {'A', 'B', 'D'}; 

%And the extension 
ext = '.xlsx'; 

%Get the path of the folders 
srcFolders = dir(fullfile(path, folderPattern)); 
srcFolders = fullfile(path, {srcFolders.name}); 

%Construct the full file path 
fullPath = cellfun(@(f) fullfile(f, strcat(srcFiles(:), ext)), srcFolders, 'uni', 0); 
fullPath = vertcat(fullPath{:}); 

%Write the data to the files 
for i = 1:length(fullPath) 
    xlswrite(fullPath{i}, data{i}) 
end 

Edit:

на основе кормов OP в.

Примечание для второго капитального ремонта. Я не тестировал это, и все готово. Это было очень много для одного вопроса, и вы злоупотребляете тем, как должен работать этот веб-сайт.

%The base file path 
path = 'D:'; 

%Relative reference to reference images 
ImageRefLocations = {'Ref\RefI1.jpg', 'Ref\RefI2.png', 'Ref\RefI3.jpg'}; 
%Base Image location 
baseImage = fullfile(path, ImageRefLocations(:)); 

%The pattern used to choose the folders 
folderPattern = 'folder*'; 

%The image extension 
[~, ~, ext] = unique(cellfun(@(f) fileparts(f), baseImage, 'uni', 0)); 

%The excel extension 
ExcelExt = '.xlsx'; 

msg = {' = no'; ' = ok'}; 

i0 = cellfun(@(f) imread(f), baseImage, 'uni', 0); 

%Get the path of the folders 
srcFolders = dir(fullfile(path, folderPattern)); 
isDir = [srcFolders.isdir]; 
srcFolders = {srcFolders(isDir).name}'; 
PathedFolders = fullfile(path, srcFolders); 
excelFiles = fullfile(path, strcat(srcFolders, ExcelExt)); 

for i = 1:length(PathedFolders) 
    f = PathedFolders{i}; 
    Images = cellfun(@(x) dir(fullfile(f, ['*', x])), ext, 'uni', 0); 
    Images = vertcat(Images{:}); 

    if isempty(Images) 
     continue 
    end 

    Images = {Images.name}'; 
    [~, ImageNames, ~] = cellfun(@(x) fileparts(x), Images, 'uni', 0); 
    ImageList = fullfile(f, Images); 

    match = zeros(size(ImageList)); 

    for j = 1:length(ImageList) 
     image = imread(ImageList{j}); 

     for k = 1:length(i0) 
      if ~all(size(image) == size(i0{k})) 
       continue 
      end 

      match(j) = all(image(:) == i0{k}(:)); 

      if match(j) 
       continue 
      end 
     end 
    end 

    matchMessage = strcat(Images, msg(match + 1)); 

    xlswrite(excelFiles{i}, matchMessage) 
end 
+0

спасибо сэр за ваш ответ, данных существует независимо от того, если какой-либо данные я должен написать, но мое беспокойство о том, как я могу написать один первенствовать файл, файл его (запись) на все папки с имя папки * (папка 1, папка 2, .... папка n), и все папки содержат одно и то же имя файла excel, но каждый из них содержит разные данные, моя проблема теперь, как написать файл Excel в каждой папке, предположим, что есть изображения в каждой папке, например, папке 1 содержат 2 изображения, папка 2 содержит 1 изображение, папка 3 содержит 3 изображения ... –

+0

Просто чтобы вы знали. Если это ваша проблема, тогда вам, вероятно, следует задать вопрос, который вы задали, а затем второй вопрос с материалами обработки изображений. – user1543042

+0

Однако, похоже, вы хотите просматривать папки 1, 2, ..., n, которые могут содержать некоторые изображения. Вы хотите просмотреть все изображения в папке и посмотреть, совпадают ли они. Если они есть, то вы хотите написать два файла Excel, в которых имена соответствуют именам файлов изображений, а данные - это изображение. Это точно? – user1543042

Смежные вопросы