2 回答

TA貢獻1865條經驗 獲得超7個贊
可以,比如你將第二個的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=這個也不算了。。。這個表示這一點的函數值

TA貢獻1796條經驗 獲得超4個贊
好像 不能吧,你可以這樣寫,不過matlab會把這個輸入當字符串 而不會真的去運行example2
例如你有function [a,b]=example(c,d,e...)
有function a=example2(f,g,h.....)
你可以寫[a,b]=example(example2,d,e...)
但有可能會出錯,example2在這里就變成了原來的c,只是一個變量,不是example2這個函數本身
- 2 回答
- 0 關注
- 1832 瀏覽
添加回答
舉報