function函数嵌套 matlab_Matlab函数进阶:使用匿名函数和内嵌函数处理多变量传递问题...
Matlab
函數(shù)進(jìn)階:
使用匿名函數(shù)
(Anonymous?Function)
和內(nèi)嵌函數(shù)
(Nested?Function)
處理多變量傳遞問題
(Matlab?7.0
以上
)
問題:
有一個多變量函數(shù)
f
(
a
b
c
x
)
,
現(xiàn)需要分別在
a
=
a
0
b
=
b
0
c
=
c
0
和
a
=
a
1
b
=
b
1
c
=
c
1
的條件下對
f
(
a
b
c
x
)
進(jìn)行某一操作。
此類問題常在數(shù)值積分時出現(xiàn)。
解決方案:
1
.使用全局變量
可在主調(diào)函數(shù)和被調(diào)函數(shù)中分別將
a,b,c
聲明為全局變量
(
global
a?b?c
)
,這時
f
通過全局
變量傳遞
abc,
定義時可以只有一個參數(shù)
x
。
2
.使用
anonymous?function
3
.使用
nested?function
下面舉例說明
anonymous?function
和
nested?function
的使用。
例:
對任意二次多項(xiàng)式
ax
2
+bx+c
進(jìn)行數(shù)值積分
(此處顯然可以解析得到,此例使用
anonymous
function
做演示)
解:(
1
)使用匿名函數(shù)
編寫文件
intpoly2.m
如下
function
y_int=intpoly2
(
a,b,c
)
y_int=quad
(
@
(
x
)(
poly2
(
a,b,c,x
))
,
0
,
1
)
;
%
此處利用
matlab
內(nèi)部函
%
數(shù)
quad(fun,?x0,xt)
進(jìn)行積分,
%
被積函數(shù)
fun
我們使用匿名函
%
數(shù)
"@(x)(poly2(a,b,c,x))"
以便
%
將自變量限制為
x.
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的function函数嵌套 matlab_Matlab函数进阶:使用匿名函数和内嵌函数处理多变量传递问题...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux——VMware虚拟机安装Ce
- 下一篇: 两个单链表相交的一系列问题----0_0