我有一个关于以下代码的问题。
[name file] = uigetfile('*', 'Select an image');
if [name file] ~= 0
%file found
end有没有一种方法可以说名称文件可以分配给一个数组?例如,Filepath[2] = ui.getfile.. (这不起作用)。
当我尝试下面的代码时,我只得到了文件名,而没有得到路径。我声明这个数组是错误的吗?
Filepath{2} = uigetfile({'*.wav;*.mp3;*.aac;*.ogg'}, 'Select a file');
%Filepath{2} = uigetfile('*', 'Select an image');
%noFile = Filepath(0);
%if Filepath[1]~= 0
%if Filepath ~= 0
disp('Loading signal');
disp(Filepath);
%disp(Filepath{0});
disp('Filepath{1}');
disp(Filepath{1});
disp('Filepath{2}');
disp(Filepath{2});发布于 2011-11-08 00:24:12
我想你可能会对一个函数的多个“输出参数”的语法感到困惑。与大多数编程语言不同,MATLAB允许函数具有多个返回值;这些返回值称为输出参数。当您有一个函数[a b] = foo(x)时,最好将其看作是将第一个输出发送到名为a的变量并将第二个输出发送到名为b的变量的语法。尽管语法[a b]看起来像一个数组,但最好不要这样想。
下面是uigetfile的一个示例
[filename, pathname] = uigetfile('*.m', 'Select a file');它分别在名为filename和pathname的变量中提供所选文件的文件名和路径。
filename =
foo.m
pathname =
/home/tobin/,但我不明白的是,如果它被取消,这个方法会返回0,如果成功,它会返回一个填充的数组。那么我如何检查零(找不到文件)呢?
为什么不试试呢?
> [filename, pathname] = uigetfile('*', 'Select a file')
filename =
0
pathname =
0如果取消uigetfile,则两个输出似乎都为0。所以你可以这样做:
[filename, pathname] = uigetfile('*', 'Select a file');
fullname = horzcat(pathname, filename);
if filename == 0
fprintf('uigetfile was cancelled.\n');
else
fprintf('user selected "%s".\n', fullname);
end发布于 2011-10-24 18:11:50
MATLAB中的数组访问使用圆括号表示“普通”数组,或使用花括号表示cell arrays。“普通”数组只能保存数值,因此您必须使用单元格数组--因此可以尝试使用Filepath{2} = uigetfile(...)。
https://stackoverflow.com/questions/7873927
复制相似问题