




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章
自定义函数的计算函数的创建1.用M文件function
f=fun(x)内联函数y=inline("(3*x^2-1)/2","x");字符串表达式(函数)"theta=t/2,y=sin(theta)‘4.符号函数Evaluation
only.ated
withfA=1s.p/o(s1e+.xS.l^i2)d);es
for
.NET
3.5
Client
ProCopyright
2004-2011
Aspose
Pty
Ltd.5.1
字符串数组一、字符串入门【例1】先实际操作cleara=12345.6789class(a)a_s=size(a)a
=1.2346e+004ans
=doublea_s
=1
1b="S"b
=Sans
=charb_s
=1
1Evaluation
only.ate本d例wi,t以h以A体s会po数se值.S量lidesfor.NETc3l.a5ssC(lbi)entPro与字•符Co串py的ri区g别ht。2004-2011
Asposbeb_Pst=ysiLzted(b.b)whosNameSizeBytes
Classa1x18double
arraya_s1x216
double
arrayans1x48 char
arrayb
1x12
c•hEavraalruraatyion
only.atedb_wsith1Axs2po1s6e.dSoluibdleesarfroary
.NET
3.5
Client
ProCopyright
2004-2011
Aspose
Pty
Ltd.【例2】本例演示:串的基本属性、标识和简单操作。。(1)创建串数组
a="This
is
an
example."a=This
is
an
example.(2)串数组a的大小ans
=Evaluation
only.atesdsiwziet(ah)Aspose.Slides
for
.NET
3.5
Client
Pro•1Co1p9yright
2004(-230)1串1
数A数s组po的se元P素ty标L识td.a14=a(1:4)ra=a(end:-1:1)a14
=Thisra
=.elpmaxe
na
si
sihT【例3】中文字符串数组
A="这是一个算例。";
A_s=size(A)A56=A([5
6])A_s
=1
7A56
=算例Example
"3.1.2-1"ab=[a(1:7),"
",b,"
."]ab
=This
is
Example
"3.1.2-1"
.【例4】由小串构•E成va大lu串ationonly.atebd="wEixtahmpAlsep"o"s3e..1S.2l-i1d"e"s"for.NET3.5ClientProb
=
•Copyright
2004-2011
Aspose
Pty
Ltd.二、复杂串数组的创建【例1】多行串数组的直接输入示例。
clearS=["This
string
array
""has
multiple
rows."]S
=has
multiple
rows.2
18Evaluation
only.ateTdhiwsitsthrAisngpgoasrera.aySlides
for
.NET
3.5
Client
Prosiz•eC(oS)p)yright
2004-2011
Aspose
Pty
Ltd.ans
=【例2】演示:用专门函数char,str2mat,strvcat创建多行串数组示例。。S2
=由4行组成S3=strvcat("这","字符","串数组","","由4行组成")S1=char("This
string
array","has
two
rows.")S1
=This
string
arrayhas
two
rows.S2=str2mat(‘这’,‘•‘E字v符a’l,u‘a串t数i组o’n,‘on’l,y"由.4行组成")ated
with
Aspose.Slides
for
.NET
3.5
Client
Pro这•Copyright
2004-2011
Aspose
Pty
Ltd.字符
串数组5.2
串演算函数为了提高计算的灵活性,MATLAB提供了一种利用字符串进行计算•的Ev能al力u。a。t利io用n字on符ly串.可以构成函数,ate可d以wi在t运h运A行s中po改se变.S所l执i执d行es的f指or令.,NE可T以3.被5泛Cl涵ie指n令tP调ro用实•现Co比py较ri复g杂ht的2求00零4-点20、1求1极A极s值po等se运P算ty。Ltd.一、evaly=eval(‘CEM’)[y1,y2,…]=eval(‘CEM’)法的指令、表达式、语句、或M文件名。
(3)第二种格式中的CEM只能是(包含输入宗量在内的)
M函数文件名。注:(1)eval指令•的Ev输a入lu宗at量io必n须on是l字y.符串。ate(d2w)it构h成As字p符os串e.的SlCEiEMd,es可f以or是.MNAETTLA3B.任5何Cl合ientProCopyright
2004-2011
Aspose
Pty
Ltd.【例】计算“表达式”串,产生向量值。。clear,t=pi;cem="[t/2,t*2,sin(t)]";y=eval(cem)y=1.5708 6.2832 0.0000【例】计算“语•句Ev”a串lu,at创io建n变on量l。y.atceldewari,tth=pApis;pose.Slidesfor.NET3.5ClientProeval•(C"otphyetrtai=gth/t2,2y0=0s4i-n2(0t1he1etAas)p")o;sePtyLtd.theta=1.5708y=1【例】计算“替代”串。CEM={"cos","sin","tan"};for
k=1:3theta=pi*k/12;y(1,k)=eval([CEM{1},"(",num2str(theta),")"]);endyy
=0.9659
0.8660
0.7071A=ones(2,1);B=ones(1,3);c=eval("B*A","A*B"),errmessage=l
asterrc
=1
1
11
1
1errmessage
=Error
using
==>
*Inner
matrix
dimensions
must
agree.Evaluation
only.ated
with
Aspose.Slides
for
.NET
3.5
Client
Pro【例•C】o计py算ri“gh合t成20”0串4-。2011
Aspose
Pty
Ltd.feval。x=pi/4;Ve=eval("1+sin(x)")Ve
=1.7071Vf=feval("1+sin(x)",x)???
Error
using
==>
fevalInvalid
function
name
"1+sin(x)".二、feval[y1,y2,…]=feval(F,arg1,arg2,…)F可以是函数句柄,函数名字符串,内联函数feval与函数句柄配套使用【例】对字符串类型函数只能用eval,而不能用Evaluationonly.ated
with
Aspose.Slides
for
.NET
3.5
Client
ProCopyright
2004-2011
Aspose
Pty
Ltd.【例】函数句柄只能被feval运用,而不能被eval调用。。(1)函数句柄被feval调用
rand("seed",1);A=rand(2,2);Heig=@eig;d=feval(Heig,A)d
=Function
"eval"
not
defined
for
variablesof
class
"function_handle".Evaluation
only.ated0.w7i5t6h8
Aspose.Slides
for
.NET
3.5
Client
Pro-0.•1C4o8p8yright
2004-2011
Aspose
Pty
Ltd.(2)eval不能对函数句柄进行操作de=eval(Heig,A)???
Error
using
==>
eval(3)feval能对函数名字符串进行操作
dn=feval("eig",A)dn
=0.7568-0.1488dn=feval("sin•"E,vpail/u2)ation
only.ateddnw=ith
Aspose.Slides
for
.NET
3.5
Client
ProCopyright
2004-2011
Aspose
Pty
Ltd.1【例】feval和eval调用区别:feval的FN只接受函数名。本例两种方法以后者为好。。randn("seed",1);A=rand(2,2);[ue,de,ve]=eval("svd(A)");disp("Results
by
eval");disp([ue,de,ve]);disp(blanks(1))[uf,df,vf]=feval("svd",A);disp("Results
by
feval");disp([uf,df,vf])Results
by
eval-0.3936
0.9193
0 0.2633
-0.6135
0.7897-0.9193
-0.3936
1.2212
0-0.3936
0.9193
0
0.2633-0.7897
-0.6135-0.6135
0.7897Evaluation
only.at-e0d.91w9i3
-t0h.39A3s6
p1.o2s21e2
.0
Sl-0i.d78e97s-f0.o61r35.NET
3.5
Client
ProResul•tsCboy
pfeyvralight
2004-2011
Aspose
Pty
Ltd.三、内联函数式。inline("CE")inline("CE",arg1,arg2,…)inline("CE",n)注:(1)‘CE’字符串•E,vaClEu必at须io是n不on包l含y.赋值号‘=’的ate表d达with
Aspose.Slides
for
.NET
3.5
Client
Pro(2)内•C联op函yr数i是g是h沟t通20e0v4a-l2,0f1ev1vaAls两p个os不e同Pt指y令Lt的d.桥梁。凡eval可以运作的表达式,都可以通过inline转化为内联函数,而这种内联函数总可以被feval使用。(3)第三种调用格式最简练,但对输入宗量的字符限制严格。输入宗量的字符只能是x,P1,P2,…,Pn.GG=vectorize(G)GG
=【例】用内联函数对象实现。创建带一个参量的二元函数
G=inline("a*exp(x)*cos(y)","a","x","y");使适应数组运算规则Evaluation
only.atedIwnilitnheAfsupnocstieio.nS:lides
for
.NET
3.5
Client
ProGG•(Cao,pxy,ry)i)g=hat.*2e0x0p4(-x2)0.1*c1oAss(ypy)ose
Pty
Ltd.GG(2,[1,2],[pi/3,pi])ans
=2.7183
-14.7781【例】演示:内联函数的第一种创建格式;使内联函数适于“数组运算”。clear,F1=inline("sin(rho)/rho")F1
=Inline
function:F1(rho)
=
sin(rho)/rhof1=F1(2)f1
=xx=[0.5,1,1.5,2];ff1=FF1(xx)FF1
=Inline
function:FF1(rho)
=
sin(rho)./rhoff1
=0.9589
0.8415
0.6650
0.4546Evaluation
only.ated0w.i4t5h46Aspose.Slides
for
.NET
3.5
Client
ProFF1•=Cvoecpctyorriigzhet(F210)04-2011
Aspose
Pty
Ltd.【例】演示:产生向量输入、向量输出的内联函数;这种向量函数的调用方法。Y2=inline("[x(1)^2;3*x(1)*sin(x(2))]")argnames(Y2)Y2
=Inline
function:Y2(x)
=
[x(1•)^E2v;a3l*uxa(t1i)o*snsionn(lx(y2.))]ateadnsw=ith
Aspose.Slides
for
.NET
3.5
Client
Pro"x•"Copyright
2004-2011
Aspose
Pty
Ltd.x=[4,pi/6];y2=Y2(x)y2
=16.00006.0000【例】演示:最简练格式创建内联函数;内联函数可被feval指令调用。。Z2=inline("P1*x*sin(x^2+P2)",2)
Z2
=Inline
function:Z2(x,P1,P2)
=
P1*x*sin(x^2+P2)z2=Z2(2,2,3)Evaluation
only.atefdz2w=iftehvaAls(pZo2,s2e,.2S,l3i)des
for
.NET
3.5
Client
Proz2
=•Copyright
2004-2011
Aspose
Pty
Ltd.2.6279fz2
=2.62795.3
函数句柄(1)利用@符号(2)利用转换函数str2func引入函数句柄使“函数调用”像“变量调用”一样灵活方便•。Evaluation
only.ated一w、it函h
数As句po柄se的.创Sl建ides
for
.NET
3.5
Client
ProCopyright
2004-2011
Aspose
Pty
Ltd.【例】为MATLAB的“内建”函数创建函数句柄,并观察其内涵。。创建函数句柄
hsin=@sin;类型判别class(hsin)•Evaluation
only.atedswiizteh(hAssipno)se.Slides
for
.NET
3.5
Client
Proan•nsCo=pyright
2004-2011
Aspose
Pty
Ltd.function_handleans
=1
1二、函数句柄的基本用法
[ao1,ao2,…,aon]=FunName(ai1,ai2,…,ain)Hfun=@FunName;
[ao1,ao2,…,aon]=feval(Hfun,ai1,ai2,…,ain)Evaluation
only.ated
with
Aspose.Slides
for
.NET
3.5
Client
ProCopyright
2004-2011
Aspose
Pty
Ltd.【例】本例通过sin函数及其句柄演示若干基本用法。(1)函数句柄的创建
fhandle=str2func("sin");(2)函数句柄在“数值计算”中的情况
ys=sin(pi/4)yfold=feval("s•iEnv"a,lpuia/4t4)ion
only.atyefdnwewi=tfhevAvaslp(ofshea.nSdllie,dpeis/4f4)or
.NET
3.5
Client
Proys
=•Copyright
2004-2011
Aspose
Pty
Ltd.0.7071yfold
=0.7071yfnew
=0.7071(3)函数句柄在“符号计算”中的情况
Alpha=sym("pi/4");yss=sin(Alpha)yfold=feval("sin",Alpha)ynews=feval(fhandle,Alpha)yss
=1/2*2^(1/2)Evaluation
only.atyefdowldit=hAspose.Slidesfor.NET3.5ClientPro1/2*•2C^o(p1y/2r2)ight2004-2011AsposePtyLtd.ynews=1/2*2^(1/2)(4)函数句柄在泛函指令中的用法在[0,2π]间求sin函数的极小值点的位置。
xold=fminbnd("sin",0,2*pi)xnew=fminbnd(fhandle,0,2*pi)xold
=4.7124xnew
=Evaluation
only.ated4.w7i1t2h4
Aspose.Slides
for
.NET
3.5
Client
ProCopyright
2004-2011
Aspose
Pty
Ltd.【例】自建函数及其句柄的使用。通过本例可看到:只要在当前MATLAB工作空间中存在函数句柄,那末不管该函数当前是否在搜索范围内,均可通过函数句柄实现正确的运作。。(1)[zzy076_3.m]function Hr=zzy076_3(flag )% ZZY076_3 为演•E示va函l数ua、ti子on函o数nl句y柄.而设计的绘图at文ed件w。ithAspose.Slidesfor.NET3.5ClientPro% fl•aCgopyright可2以00取4-字20符1串1A"lslipnoes"e或Pt"yciLrtcdl.e"。t=(0:100)/100*2*pi;x=sin(t);y=cos(t);Hr=@cirline; %创建子函数的句柄feval(Hr,flag,x,y,t)%
subfunctionfunction
cirline(wd,x,y,t)接受字符串"line"或"circle"画线用的独立参变量由t产生的横坐标变量由t产生的纵
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 登高作业考试题及答案测试卷
- 田径理论考试试题及答案
- 湖北省恩施州高中教育联盟2024-2025学年高一上学期期末考试生物试题(含答案)
- 2025年高校科研管理岗位面试题目及答案
- 儿童认知测评题库及答案
- 中央b类考试题及答案
- 管理英语2考试题及答案
- 书法考试题及答案
- 外国中文老师考试题及答案
- 专项公益资金管理办法
- 金融标准化知识培训课件
- 建筑安全员c2考试题库及答案
- 2025广东惠州惠城区招聘社区工作站工作人员66人笔试备考试题及答案解析
- 洋务运动和边疆危机课件-2025-2026学年统编版八年级历史上册
- 2025年中学教师资格考试《综合素质》核心考点特训题库(含答案)之教育文化素养论述题库
- 2025海南省老干部服务管理中心招聘事业编制人员6人(第1号)笔试参考题库附答案解析
- 2025-2026人教版(2024)二年级上册数学教学计划
- 湖北省利川市2025年上半年公开招聘辅警试题含答案分析
- 八年级历史上学期 导言课 课件(内嵌视频)
- 1.1.2 生物的特征 同步练习(含解析)人教版(2024)初中生物学七年级上册
- 2025云南玉溪国润建筑有限责任公司招聘工作人员10人笔试备考题库及答案解析
评论
0/150
提交评论