資源描述:
《基于matlab的數(shù)值分析》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第五章自定義函數(shù)的計算函數(shù)的創(chuàng)建用M文件functionf=fun(x)f=1./(1+x.^2);內(nèi)聯(lián)函數(shù)y=inline('(3*x^2-1)/2','x');3.字符串表達式(函數(shù))'theta=t/2,y=sin(theta)‘4.符號函數(shù)5.1字符串數(shù)組一、字符串入門【例1】先實際操作本例,以體會數(shù)值量與字符串的區(qū)別。cleara=12345.6789class(a)a_s=size(a)a=1.2346e+004ans=doublea_s=11b='S'class(b)b_s=size(b)b=Sans=ch
2、arb_s=11whosNameSizeBytesClassa1x18doublearraya_s1x216doublearrayans1x48chararrayb1x12chararrayb_s1x216doublearray【例2】本例演示:串的基本屬性、標識和簡單操作。(1)創(chuàng)建串數(shù)組a='Thisisanexample.'a=Thisisanexample.(2)串數(shù)組a的大小size(a)ans=119(3)串數(shù)組的元素標識a14=a(1:4)ra=a(end:-1:1)a14=Thisra=.elpmaxen
3、asisihT【例3】中文字符串數(shù)組A='這是一個算例。';A_s=size(A)A56=A([56])A_s=17A56=算例【例4】由小串構(gòu)成大串b='Example''3.1.2-1'''b=Example'3.1.2-1'ab=[a(1:7),'',b,'.']ab=ThisisExample'3.1.2-1'.二、復雜串數(shù)組的創(chuàng)建【例1】多行串數(shù)組的直接輸入示例。clearS=['Thisstringarray''hasmultiplerows.']S=Thisstringarrayhasmultiplerow
4、s.size(S)ans=218【例2】演示:用專門函數(shù)char,str2mat,strvcat創(chuàng)建多行串數(shù)組示例。S1=char('Thisstringarray','hastworows.')S1=Thisstringarrayhastworows.S2=str2mat(‘這’,‘字符’,‘串數(shù)組’,‘’,'由4行組成')S2=這字符串數(shù)組由4行組成S3=strvcat('這','字符','串數(shù)組','','由4行組成')5.2串演算函數(shù)為了提高計算的靈活性,MATLAB提供了一種利用字符串進行計算的能力。利用字符串
5、可以構(gòu)成函數(shù),可以在運行中改變所執(zhí)行的指令,可以被泛涵指令調(diào)用實現(xiàn)比較復雜的求零點、求極值等運算。一、evaly=eval(‘CEM’)[y1,y2,…]=eval(‘CEM’)注:(1)eval指令的輸入宗量必須是字符串。(2)構(gòu)成字符串的CEM,可以是MATLAB任何合法的指令、表達式、語句、或M文件名。(3)第二種格式中的CEM只能是(包含輸入宗量在內(nèi)的)M函數(shù)文件名?!纠坑嬎恪罢Z句”串,創(chuàng)建變量。clear,t=pi;eval('theta=t/2,y=sin(theta)');theta=1.5708y=1【
6、例】計算“表達式”串,產(chǎn)生向量值。clear,t=pi;cem='[t/2,t*2,sin(t)]';y=eval(cem)y=1.57086.28320.0000【例】計算“替代”串。A=ones(2,1);B=ones(1,3);c=eval('B*A','A*B'),errmessage=lasterrc=111111errmessage=Errorusing==>*Innermatrixdimensionsmustagree.【例】計算“合成”串。CEM={'cos','sin','tan'};fork=1:3t
7、heta=pi*k/12;y(1,k)=eval([CEM{1},'(',num2str(theta),')']);endyy=0.96590.86600.7071[y1,y2,…]=feval(F,arg1,arg2,…)F可以是函數(shù)句柄,函數(shù)名字符串,內(nèi)聯(lián)函數(shù)feval與函數(shù)句柄配套使用【例】對字符串類型函數(shù)只能用eval,而不能用feval。x=pi/4;Ve=eval('1+sin(x)')Ve=1.7071Vf=feval('1+sin(x)',x)???Errorusing==>fevalInvalidfun
8、ctionname'1+sin(x)'.二、feval【例】函數(shù)句柄只能被feval運用,而不能被eval調(diào)用。(1)函數(shù)句柄被feval調(diào)用rand('seed',1);A=rand(2,2);Heig=@eig;d=feval(Heig,A)d=0.7568-0.1488(2)eval不能對函數(shù)句柄進行操作de=