首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MATLAB中赋值数组

在MATLAB中赋值数组
EN

Stack Overflow用户
提问于 2011-10-24 17:59:47
回答 2查看 782关注 0票数 0

我有一个关于以下代码的问题。

代码语言:javascript
复制
[name file] = uigetfile('*', 'Select an image');
if [name file] ~= 0
    %file found
end

有没有一种方法可以说名称文件可以分配给一个数组?例如,Filepath[2] = ui.getfile.. (这不起作用)。

当我尝试下面的代码时,我只得到了文件名,而没有得到路径。我声明这个数组是错误的吗?

代码语言:javascript
复制
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});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-08 00:24:12

我想你可能会对一个函数的多个“输出参数”的语法感到困惑。与大多数编程语言不同,MATLAB允许函数具有多个返回值;这些返回值称为输出参数。当您有一个函数[a b] = foo(x)时,最好将其看作是将第一个输出发送到名为a的变量并将第二个输出发送到名为b的变量的语法。尽管语法[a b]看起来像一个数组,但最好不要这样想。

下面是uigetfile的一个示例

代码语言:javascript
复制
[filename, pathname] = uigetfile('*.m', 'Select a file');

它分别在名为filenamepathname的变量中提供所选文件的文件名和路径。

代码语言:javascript
复制
filename =

foo.m


pathname =

/home/tobin/

,但我不明白的是,如果它被取消,这个方法会返回0,如果成功,它会返回一个填充的数组。那么我如何检查零(找不到文件)呢?

为什么不试试呢?

代码语言:javascript
复制
> [filename, pathname] = uigetfile('*', 'Select a file')

filename =

     0


pathname =

     0

如果取消uigetfile,则两个输出似乎都为0。所以你可以这样做:

代码语言:javascript
复制
[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
票数 2
EN

Stack Overflow用户

发布于 2011-10-24 18:11:50

MATLAB中的数组访问使用圆括号表示“普通”数组,或使用花括号表示cell arrays。“普通”数组只能保存数值,因此您必须使用单元格数组--因此可以尝试使用Filepath{2} = uigetfile(...)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7873927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档