【发布时间】:2013-04-19 11:29:05
【问题描述】:
我正在构建一个允许用户打开一些文件的代码。
reference = warndlg('Choose the files for analysis.');
uiwait(reference);
filenames2 = uigetfile('./*.txt','MultiSelect', 'on');
if ~iscell(filenames2)
filenames2 = {filenames2}; % force it to be a cell array of strings
end
numberOfFiles = numel(filenames2);
data = importdata(filenames2{i},delimiterIn,headerlinesIn);
当我运行代码时,出现提示,我按 OK,然后什么也没有发生。代码停止了,告诉我:
Error using importdata (line 137)
Unable to open file.
Error in FreqVSChampB_no_spec (line 119)
data=importdata(filenames2{1},delimiterIn,headerlinesIn);
我只是没有机会选择文件。单元阵列保持为空,如下图所示。
【问题讨论】:
-
我在您提供的代码 sn-p 中看不到任何
importdata? -
请查看对上一个答案的编辑 - 检查用户是否没有在
uigetfile对话框中按cancel。 -
我不明白为什么这些信息会与我的实际问题相关。我看到在某个时候添加它的意义,但我正在自己测试它,我没有按下取消按钮。测试是否按下 Cancel 的唯一方法是检查 filenames2 == 0。但因为即使我按下 OK,它也会这样做,这不会给我任何信息。
-
uigetfile有问题。在调试模式下运行,看看你得到你选择的文件名。首先尝试不使用 `MultiSelect。 -
为什么需要警告对话框?为什么不使用
uigetfile对话框的标题?