MATLAB函式的輸入變數是另函式

2021-03-12 15:08:55 字數 1094 閱讀 3380

1樓:匿名使用者

可以,比如你將第二個的function a=example(f,g,h.....)......

輸入給function [a,b]=example(c,d,e...)....

的c,只需要,再第二個變形成

function [a,b]=example(a,d,e...)....

是的簡單的將第一個函式值賦值給c,就這個意思

還有另一種情況的函式裡面帶入函式,即控制代碼

比如現在我們定義h=@sin,現在h可以當sin用了

比如h(pi/6)=sin(pi/6)

然後,,,將h帶入另一個函式,比如

cos(h(pi/6))

或者帶入某些特定函式,要求特定格式的函式

比如fminsearch

這個函式是用來求某一個多元函式,在某一個點附近的最小值及最小值所在的點的x值

比如f(x)=x1+x2

現在我們求這個函式在(0,0)附近的最小值及最小值所在的點的x值

用法是(特定格式)

[x,fval]=fminsearch(@(x) f(x) [0,0]) 表示求這個函式f(x)以x為自變數 ,在點(0,0)附近的最小值及最小值所在的點的x值

執行結果是

x=這個就不算了,,,

fval=這個也不算了。。。這個表示這一點的函式值

2樓:

好像 不能吧,你可以這樣寫,不過matlab會把這個輸入當字串 而不會真的去執行example2

例如你有function [a,b]=example(c,d,e...)

有function a=example2(f,g,h.....)你可以寫[a,b]=example(example2,d,e...)但有可能會出錯,example2在這裡就變成了原來的c,只是一個變數,不是example2這個函式本身

3樓:

可以啊,比如ode45之類的都可以以函式作為引數,傳入引數的時候前面要加上@

老版本的matlab是用函式名傳入引數的

func(@example) func('example')你看看對應函式的**就理解了

matlab在函式裡,如何呼叫另函式裡面求得的雅可比矩陣並賦值

function aa yake bb 呼叫bb函式,並將其返回值雅可比矩陣付給yakeend 函式bb用來計算雅可比矩陣 function yakebi bb yekebi 內?end有問題歡迎追問容 滿意請採納,謝謝!怎麼在matlab中求雅克比矩陣?matlab中jacobian是用來計算ja...

在函式中定義了變數,如何在另函式使用這個變數

c c 中,函式體內定義的變數具有函式作用域,無法在外部使用這個變數本身。由於版這種定義式在棧記憶體分 權配空間,變數一旦被建立,函式結束後就會被自動銷燬,因此也稱為自動 auto 變數。如果要在多個函式中共享變數,那麼可以使用作用域為全域性 編譯單元的靜態變數。這些變數定義後,在程序開始時自動建立...

matlab中怎樣對二元函式中的變數做數值積分

不行的,數值積分必須給定其它引數。用int函式不行嗎?我給你舉一個可以通用的例子 設z axy by 2 其中a b為常量,x y為變數下面求a 1,b 2,x 3 時,對y在 0,1 上的積分,步驟如下 首先,執行如下命令 yy int a x y b y 2 y 0,1 會顯示以下結果 yy 1...