可能重复:
how to run the same code with many files(different file name in same directory) in matlab?
我写了一个定义函数:
function deleteEmpty(fileName)
通常当我想执行该功能时,在命令窗口中输入:
>> deleteEmpty('C:\Documents and Settings\matlab\**myFile**.xls')
但是,我有许多文件需要通过此功能运行。这是否意味着我需要复制并粘贴文件名并每次都执行该功能?
有没有更快的方法或代码来处理我的所有文件?
答案 0 :(得分:1)
这是一个方便的解决方案,可以在多个文件上调用您的函数:
%# build a list of file names with absolute path
fPath = uigetdir('.', 'Select directory containing XLS files');
if fPath==0, error('no folder selected'), end
fNames = dir( fullfile(fPath,'*.xls') );
fNames = strcat(fPath, filesep, {fNames.name});
%# process each file
for i=1:length(fNames)
out = deleteEmpty(fNames{i});
end
答案 1 :(得分:0)
执行此操作的典型方法是创建一个包装函数(或脚本),它将访问xls文件中的文件名,并遍历每个文件名,为每个文件名运行deleteEmpty
。
特别参见xlsread。
答案 2 :(得分:0)
%Create the paths to each file as a cell array
path = {'c:', 'Documents and Settings', 'matlab'};
fileNames = {'foo.xls', 'bar.xls', 'baz.xls', 'quux.xls'};
fullFileNames = cellfun(@(f) fullfile(path{:}, f), fileNames, 'UniformOutput', false);
% Loop over files, calling deleteEmpty for each.
cellfun(@deleteEmpty, fileNames);