在 matlab 中使用 xlsread 循环遍历文件夹中的所有 .xls 文件
using xlsread in matlab to loop through all .xls files in a folder
我正在编写一个脚本,该脚本需要遍历文件夹中的所有 .xls 文件并从特定单元格中提取数据。我认为 xlsread
可以做到这一点,但我不断收到一条错误消息:
Matlab:xlsread:filenotfound
代码的基本结构如下:
files = dir('C:\folder\folder\folder\*.xls');
channelinfo = 'C:\differentfolder\chanloc.type';
cnt = '.cnt';
condition = 'varriable';
for i = 1:length(files(:,1))
try
CNTCrash1WindowStart = xlsread(files(i).name, 'Summary', 'C8');
CNTCrashWindowEnd = xlsread(files(i).name, 'Summary', 'D8');
subjectNum = xlsread(files(i).name, 'User Info', 'A2');
eeglab;
%eeglab things happen here
catch ME
disp(ME)
end
end
这里的问题是您的文件不在您的 pwd
(当前工作目录)中。对 dir
的调用会为您提供文件名,但不包括完整路径名。因此 xlsread
正在寻找您的 .xls 文件所在的位置。通过设置一个临时名称来解决此问题,其中包含完整路径并将其提供给 xlsread
:
folder = 'C:\folder\folder\folder\'; %'//
files = dir([folder, '*.xls']);
channelinfo = 'C:\differentfolder\chanloc.type';
cnt = '.cnt';
condition = 'variable';
for ii = 1:length(files(:,1))
try
tempname = fullfile(folder, files(ii).name); %// Thanks to excaza
CNTCrash1WindowStart = xlsread(tmpname, 'Summary', 'C8');
CNTCrashWindowEnd = xlsread(tmpname, 'Summary', 'D8');
subjectNum = xlsread(tmpname, 'User Info', 'A2');
eeglab;
%eeglab things happen here
catch ME
disp(ME)
end
end
我正在编写一个脚本,该脚本需要遍历文件夹中的所有 .xls 文件并从特定单元格中提取数据。我认为 xlsread
可以做到这一点,但我不断收到一条错误消息:
Matlab:xlsread:filenotfound
代码的基本结构如下:
files = dir('C:\folder\folder\folder\*.xls');
channelinfo = 'C:\differentfolder\chanloc.type';
cnt = '.cnt';
condition = 'varriable';
for i = 1:length(files(:,1))
try
CNTCrash1WindowStart = xlsread(files(i).name, 'Summary', 'C8');
CNTCrashWindowEnd = xlsread(files(i).name, 'Summary', 'D8');
subjectNum = xlsread(files(i).name, 'User Info', 'A2');
eeglab;
%eeglab things happen here
catch ME
disp(ME)
end
end
这里的问题是您的文件不在您的 pwd
(当前工作目录)中。对 dir
的调用会为您提供文件名,但不包括完整路径名。因此 xlsread
正在寻找您的 .xls 文件所在的位置。通过设置一个临时名称来解决此问题,其中包含完整路径并将其提供给 xlsread
:
folder = 'C:\folder\folder\folder\'; %'//
files = dir([folder, '*.xls']);
channelinfo = 'C:\differentfolder\chanloc.type';
cnt = '.cnt';
condition = 'variable';
for ii = 1:length(files(:,1))
try
tempname = fullfile(folder, files(ii).name); %// Thanks to excaza
CNTCrash1WindowStart = xlsread(tmpname, 'Summary', 'C8');
CNTCrashWindowEnd = xlsread(tmpname, 'Summary', 'D8');
subjectNum = xlsread(tmpname, 'User Info', 'A2');
eeglab;
%eeglab things happen here
catch ME
disp(ME)
end
end