所以我有這兩個組成.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