Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-10, 20:30   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 MATLAB函数的返回值是否取决于调用的方式?

A = imread(filename, fmt) [X, map] = imread(...) 上面是imread的摘要部分,这似乎表示MATLAB函数的返回值取决于调用它的方式?真的吗?



回答:

IMREAD函数定义为

function [X, map, alpha] = imread(varargin) 在您的两个示例中,A和X相同,但是在第二种情况下,将有其他变量map 。

如果在函数定义中使用VARARGOUT ,则MATLAB中有一种方法可以定义变量输出:

function varargout = foo(x) 因此,您可以根据函数主体中的某些条件输出不同的值。

这是一个愚蠢的例子,但它说明了概念:

function varargout = foo(a,b) if a>b varargout{1} = a+b; varargout{2} = ab; else varargout{1} = a; varargout{2} = b; end 然后

[x,y] = foo(2,3) x = 2 y = 3 [x,y] = foo(3,2) x = 5 y = 1 输出参数甚至可以是不同的数据类型。

另一个基于输出变量数量的条件示例:

function varargout = foo(a,b) if nargout < 2 varargout{1} = a+b; else varargout{1} = a; varargout{2} = b; end 然后

[x,y] = foo(2,3) x = 2 y = 3 x = foo(2,3) x = 5

更多&回答...
poster 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 05:17


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.