所以我有这两个组成.m文件。这是我遇到的问题的一个例子,数学是伪数学传递函数作为函数的参数
rectangle.m:
function [vol, surfArea] = rectangle(side1, side2, side3)
vol = ...;
surfArea = ...;
end
ratio.m:
function r = ratio(f,constant)
% r should return a scaled value of the volume to surface area ratio
% based on the constant provided.
% This line doesn't work but shows what I'm intending to do.
[vol,surfArea] = f
r = constant*vol*surfArea;
end
什么我不知道该如何要做的就是传递矩形函数作为f,然后从比例函数中访问vol和surfArea。我已阅读并阅读了Mathworks的关于函数句柄和函数功能的页面,并且已经找出了解决此问题的方法。我是MATLAB新手,所以也没有帮助。
让我知道你是否需要任何信息。
谢谢!
可以在'cellfun'但在这个例子中函数作为参数传递,例如,你怎么了如果函数没有得到任何参数,希望函数给出结果? – 2014-10-04 21:06:52
所以我设想(错误地)传递的参数是这样的。 '比(矩形(1,2,3),2)'。但是,我认为这更接近正确的答案。 (@矩形,2)'或'比率(@(x)比率(1,2,3),2)'。在最后两种情况下,我不明白如何访问矩形函数的输出。 – 2014-10-04 21:09:43
你是否真的需要创建某种功能闭包?举例来说,根本不需要函数句柄 - 只需让调用者首先调用它想要的任何“f”,然后将生成的'vol'和'surfArea'作为额外参数传递给'ratio'(即“比例” (矩形(1,2,3),2)'idea) – Notlikethat 2014-10-04 21:47:20