【发布时间】:2015-09-24 01:54:13
【问题描述】:
我想创建一个匿名函数,它采用 Matlab 文件中现有向量函数的第一个输出变量。例如,单独的 M 文件中现有的向量函数是
function [y1,y2] = myfun(x1)
y1 = x1;
y2 = x1^2;
end
是否可以从 myfun() 创建一个取 y1 值的匿名标量函数?感谢您的任何建议。
附:我这样做是因为实际上我的原始功能更像
function [y1,y2] = myfun(x1,x2)
y1 = x1+x2;
y2 = x1^2+x2^2;
end
我想创建一个只有一个参数 x1 的标量函数 y1(将 x2 的已知值传递给匿名函数)。
【问题讨论】:
-
@(x1) myfun(x1)不能用于第一种情况,@(x1) myfun(x1,x2)不能用于第二种情况? -
那么新函数仍然返回两个值。是否可以只返回 y1 或 y2?
-
好吧,我尝试了我的建议,它只是返回了
y1。很难让它返回y2。也许看看这个:stackoverflow.com/questions/3627107/… 和paren=@(x,varargin) x(varargin{:})然后fun=@(x1) paren(myfun(x1,x2),1)得到y1和fun=@(x1) paren(myfun(x1,x2),2)得到y2。我尚未对其进行测试,但如果它有效,请将其添加为该问题的答案。 -
this question 与你想做的事情有关吗?
-
@David,感谢您的解决方案,它就像一个魅力。我需要做的唯一调整是将 y1 和 y2 组合成一个向量,否则匿名函数只会将 y1 作为输出
标签: matlab parameter-passing anonymous-function