【发布时间】:2015-02-22 17:56:35
【问题描述】:
我正在尝试打开一个对话框,提示用户选择一个文件,然后在为名为 EEGLAB 的 matlab 工具箱编写的函数中使用该文件。代码如下:
[F,PathName,FilterIndex] = uigetfile({'*.*','All Files(*.*)'}, 'Select your File ')
b = strcat(PathName,F)
Input = importdata(b)
FF = Input.filename;
%Loading the dataset into EEG lab. and rereferencing to Cz.
EEG = pop_loadset('filename','FF','filepath','/Users/maheensiddiqui/Desktop/eeglab13_4_4b/EEG_data/Data/infant control01 and lance01 ref Fz - TF Analysis - all electrodes/');
EEG = eeg_checkset( EEG );
我遇到的问题在这一行:
EEG = pop_loadset('filename','FF','filepath','/Users/maheensiddiqui/Desktop/eeglab13_4_4b/EEG_data/Data/infant control01 and lance01 ref Fz - TF Analysis - all electrodes/');
这是我收到的错误消息:
使用加载出错 无法读取文件'/Users/maheensiddiqui/Desktop/eeglab13_4_4b/EEG_data/Data/infant control01 和 lance01 ref Fz - TF 分析 - 所有电极/FF':没有这样的文件或目录。 pop_loadset 中的错误(第 108 行) TMPVAR = load('-mat', 文件名); 新引用错误(第 7 行) EEG = pop_loadset('filename','FF','filepath','/Users/maheensiddiqui/Desktop/eeglab13_4_4b/EEG_data/Data/infant control01 和 lance01 ref Fz - TF 分析 - 所有电极/');
现在,如果我一开始不弹出对话框窗口(这意味着我删除了我拥有的前 4 行代码,并且在以下行中我有:
EEG = pop_loadset('filename','206301L01.set','filepath','/Users/maheensiddiqui/Desktop/eeglab13_4_4b/EEG_data/Data/infant control01
and lance01 ref Fz - TF 分析 - 所有电极/');
即我明确说明了文件的名称,其余代码工作正常。我不确定为什么会发生这种情况......我需要为大约 20 个不同的文件运行我的代码,如果每次都需要输入名称才能工作,它的效率非常低! (特别是如果我将与其他人共享我的代码)。
有谁知道我为什么会收到这个错误?可能是因为文件格式? .set 而不是像 .mat 或 .txt 之类的传统格式。但是 .set 格式在明确输入文件名时有效。我还更改了我的目录以排除空格,但这也不起作用......
如果有任何帮助,我将不胜感激!
【问题讨论】:
-
这可能是因为您指定的目录内的空格内的空格:
infant control01 and lance01 ref Fz - TF Analysis - all electrodes/。也许把它放在一个没有空格的目录中?让事情变得更简单,比如tmp1。 -
@rayryeng 我尝试删除空格,还尝试创建一个新目录 tmp1 并将其放入其中,到目前为止似乎没有任何效果。
-
FF是一个变量,但是您将其作为字符串输入(您使用'FF')。尝试使用:EEG = pop_loadset('filename',FF,'filepath',...)。如果不起作用,请在工作区中查看FF的值,它应该是包含您的文件名的字符串。 -
@Hoki Ohhhh.. 非常感谢!有效.. :)
-
@rayryeng,是的,格式也让我失望。我首先试图理解粗体错误消息(确实太粗体了)......当我选择错误的字符串构造时,我正要放弃。 OP 在后来的代码行中确定了有效的方法,这是一件好事(这表明他试图以某种方式解决它,并证实了我对文件名的怀疑)。
标签: matlab file input getfiles eeglab