Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 无法在Matlab中使用uigetfile打开文件_Arrays_Matlab_Cell - Fatal编程技术网

Arrays 无法在Matlab中使用uigetfile打开文件

Arrays 无法在Matlab中使用uigetfile打开文件,arrays,matlab,cell,Arrays,Matlab,Cell,我正在构建一个代码,允许用户打开一些文件 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 en

我正在构建一个代码,允许用户打开一些文件

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);
我只是没有机会选择一个文件。该光线保持为空,如下图所示


MATLAB找不到您选择的文件。变量
filenames2
仅包含文件名,而不包含其完整路径。如果您没有提供
importdata
的完整路径,它将搜索您在MATLAB路径上提供的任何文件名,如果找不到,它将出错,如您所见

尝试类似的方法-为了便于描述,我只使用单个选择,但是您可以使用多个选择来执行类似的操作

[fileName, pathName] = uigetfile('*.txt');
fullNameWithPath = fullfile(pathName, fileName);
importdata(fullNameWithPath)

fullfile
很有用,因为它在
pathName
fileName
之间插入了正确的字符(Windows上是
\
,Unix上是
/

filenames2仅包含文件名,而不包含其完整路径。如果您没有提供
importdata
的完整路径,它将搜索您在MATLAB路径上提供的任何文件名,如果找不到,它将出错,如您所见

尝试类似的方法-为了便于描述,我只使用单个选择,但是您可以使用多个选择来执行类似的操作

[fileName, pathName] = uigetfile('*.txt');
fullNameWithPath = fullfile(pathName, fileName);
importdata(fullNameWithPath)
fullfile
很有用,因为它在
pathName
fileName
之间插入了正确的字符(Windows上是
\
,Unix上是
/

您可以尝试添加

pause(0.1);
就在
uiwait(参考)之后

对我来说这很有效。事实上,我注意到当我们使用uiwait和uigetfile时,活动窗口发生了变化。

您可以尝试添加

pause(0.1);
就在
uiwait(参考)之后


对我来说这很有效。事实上,当我们使用uiwait和uigetfile时,我注意到活动窗口发生了变化。

在您提供的代码片段中,我看不到任何
importdata
?请查看对上一个答案的编辑-检查用户没有在
uigetfile
对话框中按
cancel
。我不明白为什么这些信息与您的回答相关我的实际问题。我知道在某个时候添加它的意义,但是我自己正在测试它,我没有按下取消按钮。测试是否按下取消的唯一方法是检查filenames2==0。但是,即使我按OK,它也会这样做,这不会给我任何信息。您对
uigetfile
有问题。在调试模式下运行,并查看是否获得所选的文件名。首先尝试不使用“MultiSelect”。为什么需要警告对话框?为什么不使用
uigetfile
对话框的标题?在您提供的代码段中,我看不到任何
importdata
?请查看对上一个答案的编辑-检查用户没有在
uigetfile
对话框中按
cancel
。我不明白为什么这些信息与我的实际问题相关。我知道在某个时候添加它的意义,但是我自己正在测试它,我没有按下取消按钮。测试是否按下取消的唯一方法是检查filenames2==0。但是,即使我按OK,它也会这样做,这不会给我任何信息。您对
uigetfile
有问题。在调试模式下运行,并查看是否获得所选的文件名。首先尝试不使用“MultiSelect”。为什么需要警告对话框?为什么不使用
uigetfile
对话框的标题?