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

我有一个返回两个值的函数,如下所示:

[ab] = myfunc(x) 有没有一种方法可以在不使用临时变量且不更改函数的情况下获得第二个返回值?

我正在寻找的是这样的:

abs(secondreturnvalue(myfunc(x)))

回答:

除非迫切需要这样做,否则我建议不要这样做。代码的清晰度会受到影响。将输出存储在临时变量中,然后将这些变量传递给另一个函数将使您的代码更整洁,并且在此概述了实现此目的的不同方法: 如何优雅地忽略MATLAB函数的某些返回值?

但是,如果您确实想要或需要这样做,那么我想到的唯一可行的方法是创建自己的函数secondreturnvalue 。这是一个更通用的示例,称为nth_output :

function value = nth_output(N,fcn,varargin) [value{1:N}] = fcn(varargin{:}); value = value{N}; end 您可以通过将以下内容作为输入来调用它:1)所需的输出参数编号,2) myfunc的函数句柄 ,以及3)需要传递给myfunc任何输入参数:

abs(nth_output(2,@myfunc,x))

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


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

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



所有时间均为北京时间。现在的时间是 19:31


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