在matlab中使用xlsread来遍历文件夹中的所有.xls文件
我正在编写一个脚本,需要遍历文件夹中的所有.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
会给你文件名,但不包括完整的path名。 因此, xlsread
正在寻找你的.xls文件在他们不在的位置。 通过设置一个包含完整path的临时名称并将其提供给xlsread
来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