Я предполагаю, что вы хотите писать различные наборы данных в файл 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
спасибо сэр за ваш ответ, данных существует независимо от того, если какой-либо данные я должен написать, но мое беспокойство о том, как я могу написать один первенствовать файл, файл его (запись) на все папки с имя папки * (папка 1, папка 2, .... папка n), и все папки содержат одно и то же имя файла excel, но каждый из них содержит разные данные, моя проблема теперь, как написать файл Excel в каждой папке, предположим, что есть изображения в каждой папке, например, папке 1 содержат 2 изображения, папка 2 содержит 1 изображение, папка 3 содержит 3 изображения ... –
Просто чтобы вы знали. Если это ваша проблема, тогда вам, вероятно, следует задать вопрос, который вы задали, а затем второй вопрос с материалами обработки изображений. – user1543042
Однако, похоже, вы хотите просматривать папки 1, 2, ..., n, которые могут содержать некоторые изображения. Вы хотите просмотреть все изображения в папке и посмотреть, совпадают ли они. Если они есть, то вы хотите написать два файла Excel, в которых имена соответствуют именам файлов изображений, а данные - это изображение. Это точно? – user1543042