0

我正在编写一个脚本,该脚本需要遍历文件夹中的所有 .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            
4

1 回答 1

2

这里的问题是您的文件不在您的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 
于 2015-12-15T14:16:17.383 回答