MATLAB講稿_3-簡單編程_第1頁
MATLAB講稿_3-簡單編程_第2頁
MATLAB講稿_3-簡單編程_第3頁
MATLAB講稿_3-簡單編程_第4頁
MATLAB講稿_3-簡單編程_第5頁
已閱讀5頁,還剩85頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、MATLAB程序設(shè)計基礎(chǔ)n作業(yè):作業(yè):n1、把下面圖中的程序轉(zhuǎn)化為循環(huán)算法、把下面圖中的程序轉(zhuǎn)化為循環(huán)算法MATLAB程序設(shè)計基礎(chǔ)n作業(yè):作業(yè):n2、下圖中的函數(shù)在課上講了遞歸編程求解的、下圖中的函數(shù)在課上講了遞歸編程求解的方法。但課上講的遞歸程序在調(diào)用前,要自行方法。但課上講的遞歸程序在調(diào)用前,要自行判斷實參的奇偶性,偶數(shù)調(diào)用判斷實參的奇偶性,偶數(shù)調(diào)用A函數(shù),奇數(shù)調(diào)函數(shù),奇數(shù)調(diào)用用B函數(shù)。函數(shù)。n(1)編寫一個新的函數(shù),為這兩個函數(shù)提供)編寫一個新的函數(shù),為這兩個函數(shù)提供單一入口,由程序判斷數(shù)據(jù)的奇偶性,自動調(diào)單一入口,由程序判斷數(shù)據(jù)的奇偶性,自動調(diào)用合適的函數(shù)。用合適的函數(shù)。n(2)把這兩

2、個函數(shù)程序轉(zhuǎn)化為循環(huán)算法。)把這兩個函數(shù)程序轉(zhuǎn)化為循環(huán)算法。MATLAB程序設(shè)計基礎(chǔ)應(yīng)用軟件基礎(chǔ)第三章:簡單程序的編寫簡單程序的編寫n簡單有趣的小程序簡單有趣的小程序n變量作用域變量作用域n數(shù)據(jù)類型的補充數(shù)據(jù)類型的補充n類型轉(zhuǎn)換的補充類型轉(zhuǎn)換的補充n運算符的補充運算符的補充簡單程序的編寫1、簡單有趣的小程序簡單有趣的小程序簡單程序的編寫1.1 將華氏溫度將華氏溫度f轉(zhuǎn)換為攝氏溫度轉(zhuǎn)換為攝氏溫度c。function c=f2c(f) c=5*(f-32)/9調(diào)用函數(shù),計算調(diào)用函數(shù),計算104華氏度為多少攝氏度。華氏度為多少攝氏度。f2c(104)c = 40簡單程序的編寫1.2 輸入輸入x,y的

3、值,并將它們的值互換后的值,并將它們的值互換后輸出。輸出。x=input(請輸入請輸入x:);y=input(請輸入請輸入y:);z=x;x=y;y=z;disp(互換后的互換后的x:);disp(x);disp(互換后的互換后的y:);disp(y);簡單程序的編寫1.3 求一元二次方程求一元二次方程ax2 +bx+c=0的根。的根。a=input(a=);b=input(b=);c=input(c=);d=b*b-4*a*c;x=(-b+sqrt(d)/(2*a),(-b-sqrt(d)/(2*a);disp(x1=,num2str(x(1),x2=,num2str(x(2);簡單程序的編

4、寫1.4 動畫動畫程序程序x=-pi:0.01:pi;y=sin(x);figure;hold on;axis(-pi,pi,-1,1);for i=2:length(x)-1 plot(x(i-1:i),y(i-1:i),bo-) plot(x(i:i+1),y(i:i+1),ro-) pause(0.01);end; 簡單程序的編寫暫停程序的執(zhí)行可以使用暫停程序的執(zhí)行可以使用pause函數(shù),其函數(shù),其調(diào)用格式為:調(diào)用格式為: pause(延遲秒數(shù)延遲秒數(shù))如果省略延遲時間,直接使用如果省略延遲時間,直接使用pause,則,則將暫停程序,直到用戶按任一鍵后程序繼將暫停程序,直到用戶按任一鍵后

5、程序繼續(xù)執(zhí)行。續(xù)執(zhí)行。 若要強行中止程序的運行可使用若要強行中止程序的運行可使用Ctrl+C命令。命令。 簡單程序的編寫1.5 輸入一個字符,若為大寫字母,則輸出其對輸入一個字符,若為大寫字母,則輸出其對應(yīng)的小寫字母;若為小寫字母,則輸出其對應(yīng)的大應(yīng)的小寫字母;若為小寫字母,則輸出其對應(yīng)的大寫字母;若為數(shù)字字符則輸出其對應(yīng)的數(shù)值,若為寫字母;若為數(shù)字字符則輸出其對應(yīng)的數(shù)值,若為其他字符則原樣輸出。其他字符則原樣輸出。c=input(請輸入一個字符請輸入一個字符,s);%使用使用help、document查看幫助查看幫助if c=A & c=a& c=0& c=9 dis

6、p(abs(c)-abs(0);else disp(c);end簡單程序的編寫1.6 某商場對顧客所購買的商品實行打折銷售,某商場對顧客所購買的商品實行打折銷售,標準如下標準如下(商品價格用商品價格用price來表示來表示): price200 沒有折扣沒有折扣200price500 3%折扣折扣500price1000 5%折扣折扣1000price2500 8%折扣折扣2500price 0) sum mean=sum/cntend簡單程序的編寫1.11 求求100,200之間第一個能被之間第一個能被21整整除的整數(shù)。除的整數(shù)。for n=100:200if rem(n,21)=0cont

7、inueendbreakendn簡單程序的編寫1.12 若一個數(shù)等于它的各個真因子之和,則稱該數(shù)為完若一個數(shù)等于它的各個真因子之和,則稱該數(shù)為完數(shù),如數(shù),如6=1+2+3,所以,所以6是完數(shù)。求是完數(shù)。求1,500之間的全部完數(shù)。之間的全部完數(shù)。for m=1:500s=0;for k=1:m/2if rem(m,k)=0s=s+k;endendif m=s disp(m);endend簡單程序的編寫1.13 利用函數(shù)文件,實現(xiàn)直角坐標利用函數(shù)文件,實現(xiàn)直角坐標(x,y)與極坐與極坐標標(,)之間的轉(zhuǎn)換。之間的轉(zhuǎn)換。function rho,theta=tran(x,y)rho=sqrt(x*

8、x+y*y);theta=atan(y/x); 調(diào)用函數(shù):調(diào)用函數(shù):x=input(Please input x=:);y=input(Please input y=:);rho,the=tran(x,y);rhothe 簡單程序的編寫1.14 nargin、nargout功能、用法功能、用法在調(diào)用函數(shù)時,在調(diào)用函數(shù)時,MATLAB用兩個用兩個內(nèi)置變量內(nèi)置變量nargin和和nargout分別記錄調(diào)分別記錄調(diào)用該函數(shù)時的輸入實參和輸出實參的用該函數(shù)時的輸入實參和輸出實參的個數(shù)。只要在函數(shù)文件中包含這兩個個數(shù)。只要在函數(shù)文件中包含這兩個變量,就可以準確地知道該函數(shù)文件變量,就可以準確地知道該函數(shù)

9、文件被調(diào)用時的輸入輸出參數(shù)個數(shù),從而被調(diào)用時的輸入輸出參數(shù)個數(shù),從而決定函數(shù)如何進行處理。決定函數(shù)如何進行處理。簡單程序的編寫function fout=charray(a,b,c)if nargin=1 fout=a;elseif nargin=2 fout=a+b;elseif nargin=3 fout=(a*b*c)/2;end簡單程序的編寫x=1:3;y=1;2;3;fout(x)fout(x,y)fout(x,y,3)簡單程序的編寫1.15 全局變量應(yīng)用示例全局變量應(yīng)用示例全局變量用全局變量用global命令定義,格式為:命令定義,格式為:global 變量名變量名function

10、 f=example_global(x,y)global ALPHA BETAf=ALPHA*x+BETA*y;在命令窗口中輸入:在命令窗口中輸入:global ALPHA BETAALPHA=1;BETA=2;s=example_global (1,2)簡單程序的編寫作業(yè):作業(yè):1、猜數(shù)游戲。首先由計算機產(chǎn)生、猜數(shù)游戲。首先由計算機產(chǎn)生1,100之間的隨機整數(shù),然后由用之間的隨機整數(shù),然后由用戶猜測所產(chǎn)生的隨機數(shù)。根據(jù)用戶戶猜測所產(chǎn)生的隨機數(shù)。根據(jù)用戶猜測的情況給出不同提示,如猜測猜測的情況給出不同提示,如猜測的數(shù)大于產(chǎn)生的數(shù),則顯示的數(shù)大于產(chǎn)生的數(shù),則顯示“High”,小于則顯示,小于則顯

11、示“Low”,等于則顯示,等于則顯示“You won”,同時退出游戲。用戶,同時退出游戲。用戶最多可以猜最多可以猜7次。次。簡單程序的編寫2、用篩選法求某自然數(shù)范圍內(nèi)的全部、用篩選法求某自然數(shù)范圍內(nèi)的全部素數(shù)。素數(shù)是大于素數(shù)。素數(shù)是大于1,且除了,且除了1和它本身以和它本身以外,不能被其他任何整數(shù)所整除的整數(shù)。外,不能被其他任何整數(shù)所整除的整數(shù)。用篩選法求素數(shù)的基本思想是:要找出用篩選法求素數(shù)的基本思想是:要找出2m之間的全部素數(shù),首先在之間的全部素數(shù),首先在2m中劃去中劃去2的倍數(shù)的倍數(shù)(不包括不包括2),然后劃去,然后劃去3的倍數(shù)的倍數(shù)(不包不包括括3),由于,由于4已被劃去,再找已被劃去

12、,再找5的倍數(shù)的倍數(shù) (不包不包括括5),直到再劃去不超過的數(shù)的倍數(shù),直到再劃去不超過的數(shù)的倍數(shù),剩下的數(shù)都是素數(shù)。,剩下的數(shù)都是素數(shù)。簡單程序的編寫3、求、求Fibonacci數(shù)列的第數(shù)列的第20項。項。Fibonacci數(shù)列定義如下:數(shù)列定義如下:f1=1f2=1fn=fn-1+fn-2 (n2)簡單程序的編寫4、編寫兩個排序函數(shù),分別使用插入、編寫兩個排序函數(shù),分別使用插入排序算法、起泡排序算法。排序算法、起泡排序算法。簡單程序的編寫5、猴子吃桃問題。猴子第一天摘下若猴子吃桃問題。猴子第一天摘下若干桃子,當即吃了一半,還不過癮,又多干桃子,當即吃了一半,還不過癮,又多吃了一個。第二天早上

13、又將剩下的桃子吃吃了一個。第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都掉一半,又多吃了一個。以后每天早上都吃了前一天剩下的一半零一個。到第吃了前一天剩下的一半零一個。到第10天天早上想再吃時,只剩下一個桃子了。求第早上想再吃時,只剩下一個桃子了。求第一天共摘了多少桃子。一天共摘了多少桃子。簡單程序的編寫2、變量作用域、變量作用域簡單程序的編寫在使用在使用matlab過程中,變量可能在命過程中,變量可能在命令窗口創(chuàng)建、可能在命令文件中創(chuàng)建、也令窗口創(chuàng)建、可能在命令文件中創(chuàng)建、也可能在函數(shù)文件中創(chuàng)建??赡茉诤瘮?shù)文件中創(chuàng)建。簡單程序的編寫2.1 全局變量全局變量在命令窗口、命令文件

14、中創(chuàng)建的變量,在命令窗口、命令文件中創(chuàng)建的變量,只要不關(guān)閉只要不關(guān)閉mat lab,在命令窗口、任何,在命令窗口、任何命令文件及函數(shù)文件中,都可以使用。這命令文件及函數(shù)文件中,都可以使用。這些變量的作用域是全局的,稱全局變量。些變量的作用域是全局的,稱全局變量。簡單程序的編寫2.2 局部變量局部變量在函數(shù)文件中創(chuàng)建的變量,在命令窗在函數(shù)文件中創(chuàng)建的變量,在命令窗口、命令文件以及其他函數(shù)文件中,都無口、命令文件以及其他函數(shù)文件中,都無法使用。這些只能在函數(shù)文件中使用的變法使用。這些只能在函數(shù)文件中使用的變量的作用域是局部的,稱局部變量。量的作用域是局部的,稱局部變量。簡單程序的編寫2.3 glo

15、bal的使用的使用在函數(shù)文件中也可以創(chuàng)建全局變量,在函數(shù)文件中也可以創(chuàng)建全局變量,語法如下:語法如下:global XX=5;簡單程序的編寫在函數(shù)中創(chuàng)建的全局變量,在命令窗在函數(shù)中創(chuàng)建的全局變量,在命令窗口、命令文件、其他函數(shù)文件中使用前,口、命令文件、其他函數(shù)文件中使用前,要先聲明這個變量為全局變量,方法如下:要先聲明這個變量為全局變量,方法如下:global X例程:例程:example_global簡單程序的編寫實際上,使用實際上,使用global X,matlab會會判斷是否存在全局變量判斷是否存在全局變量X,如果不存在,如果不存在,則創(chuàng)建一個全局變量;如果存在,則會共則創(chuàng)建一個全局變

16、量;如果存在,則會共享之前創(chuàng)建的全局變量,而不會創(chuàng)建新的享之前創(chuàng)建的全局變量,而不會創(chuàng)建新的變量。變量。簡單程序的編寫global可以在命令窗口、命令文件、可以在命令窗口、命令文件、函數(shù)文件中使用,這樣創(chuàng)建的全局變量,函數(shù)文件中使用,這樣創(chuàng)建的全局變量,用用clear也不會被清除。也不會被清除。 global G; G=100; clear global G; GG = 100簡單程序的編寫2.4 persistent的使用的使用與與global相似的命令還有相似的命令還有persistent,這個命令只能在函數(shù)文件中使用,創(chuàng)建的這個命令只能在函數(shù)文件中使用,創(chuàng)建的變量會駐留在內(nèi)存中,函數(shù)調(diào)用

17、結(jié)束、使變量會駐留在內(nèi)存中,函數(shù)調(diào)用結(jié)束、使用用clear命令都不會被清除,再次調(diào)用函命令都不會被清除,再次調(diào)用函數(shù)的時候,變量的值為函數(shù)最后為其所賦數(shù)的時候,變量的值為函數(shù)最后為其所賦的值。的值。簡單程序的編寫但但persistent創(chuàng)建的是局部變量,在創(chuàng)建的是局部變量,在不同函數(shù)中,創(chuàng)建的變量都占用獨立內(nèi)存,不同函數(shù)中,創(chuàng)建的變量都占用獨立內(nèi)存,不是彼此共享,對變量的賦值彼此不互相不是彼此共享,對變量的賦值彼此不互相影響。這一點與影響。這一點與global不同。不同。例程:例程:example_per example_per1簡單程序的編寫3、數(shù)據(jù)類型的補充、數(shù)據(jù)類型的補充簡單程序的編寫n

18、3.1 復(fù)數(shù)復(fù)數(shù)n復(fù)數(shù)的創(chuàng)建復(fù)數(shù)的創(chuàng)建nx=2+3i;na=1.2;nb=2.3;ny=a+b*i;n上面定義的復(fù)數(shù),實部、虛部都是上面定義的復(fù)數(shù),實部、虛部都是double類型。類型。n也可以定義也可以定義single類型的復(fù)數(shù)類型的復(fù)數(shù)nx=single(2)+single(3)*i;簡單程序的編寫n3.2 細胞數(shù)組細胞數(shù)組n3.2.1 定義定義n也稱元胞數(shù)組,以單元為元素的數(shù)組。也稱元胞數(shù)組,以單元為元素的數(shù)組。n單元:也稱細胞、元胞。一個單元可以是任單元:也稱細胞、元胞。一個單元可以是任意類型的數(shù)據(jù),包括常量、變量,可以是簡意類型的數(shù)據(jù),包括常量、變量,可以是簡單變量,也可以是數(shù)組等復(fù)

19、雜類型的變量。單變量,也可以是數(shù)組等復(fù)雜類型的變量。n3.2.2 細胞數(shù)組與普通數(shù)組的區(qū)別細胞數(shù)組與普通數(shù)組的區(qū)別n細胞數(shù)組中,不同元素的數(shù)據(jù)類型可以不同;細胞數(shù)組中,不同元素的數(shù)據(jù)類型可以不同;普通數(shù)組中,所有元素的數(shù)據(jù)類型都必須相同。普通數(shù)組中,所有元素的數(shù)據(jù)類型都必須相同。簡單程序的編寫n3.2.3創(chuàng)建創(chuàng)建m*n細胞數(shù)組的語法細胞數(shù)組的語法n方法一:方法一:nx(1,1)=細胞細胞 1nx(l,k)=細胞細胞 (l-1)*n+kn nx(m,n)=細胞細胞 m*nn方法二:方法二:nx1,1=細胞細胞 1n nxm,n=細胞細胞 m*n簡單程序的編寫n3.2.4 例子例子nx1,1=1,

20、2,3;4,5,6;nx1,2=hello;nx2,1=2+3i;nx2,2=xn x=n 2*3 double hellon 2+3i 2*2 cell簡單程序的編寫n3.2.5 cellplot:查看數(shù)組結(jié)構(gòu):查看數(shù)組結(jié)構(gòu)ncellplot(x)簡單程序的編寫n再次運行再次運行x2,2=x;n運行運行cellplot命令查看數(shù)組結(jié)構(gòu)命令查看數(shù)組結(jié)構(gòu)簡單程序的編寫n3.2.6 細胞數(shù)組元素的引用細胞數(shù)組元素的引用n兩種引用方式:兩種引用方式:x(l,k) xl,kx(1,1) ans= 2*3 double x(1,2) ans= hellon按這種方式引用,無法訪問數(shù)組等復(fù)雜類型的按這種方

21、式引用,無法訪問數(shù)組等復(fù)雜類型的細胞的內(nèi)部元素細胞的內(nèi)部元素簡單程序的編寫X1,1 ans= 1 2 3 4 5 6 x1,1(2,1) ans= 4 x2,2(2,1) ans=2+3in對于細胞數(shù)組內(nèi)部元素的訪問,應(yīng)該采用對于細胞數(shù)組內(nèi)部元素的訪問,應(yīng)該采用這種方式。這種方式。簡單程序的編寫n3.2.7 細胞數(shù)組的構(gòu)造函數(shù)的使用細胞數(shù)組的構(gòu)造函數(shù)的使用nx=cell(m)nx=cell(m,n)ny=cell(size(x)ncell函數(shù)只創(chuàng)建細胞數(shù)組的框架,數(shù)組中的每函數(shù)只創(chuàng)建細胞數(shù)組的框架,數(shù)組中的每個元素都為空值個元素都為空值簡單程序的編寫z=cell(2,3) z= z1,4=x1

22、 z= 2*3 double 簡單程序的編寫n3.3 結(jié)構(gòu)數(shù)組結(jié)構(gòu)數(shù)組n3.3.1 定義定義n也稱構(gòu)架數(shù)組,以結(jié)構(gòu)為元素的數(shù)組。也稱構(gòu)架數(shù)組,以結(jié)構(gòu)為元素的數(shù)組。n結(jié)構(gòu):也稱構(gòu)架。一個結(jié)構(gòu)由若干個屬性構(gòu)結(jié)構(gòu):也稱構(gòu)架。一個結(jié)構(gòu)由若干個屬性構(gòu)成。成。n屬性:也稱字段、域。一個屬性可以是任意屬性:也稱字段、域。一個屬性可以是任意類型的數(shù)據(jù),包括常量、變量,可以是簡單類型的數(shù)據(jù),包括常量、變量,可以是簡單變量,也可以是數(shù)組等復(fù)雜類型的變量。變量,也可以是數(shù)組等復(fù)雜類型的變量。n需要注意的是,結(jié)構(gòu)數(shù)組的一個元素是結(jié)構(gòu),需要注意的是,結(jié)構(gòu)數(shù)組的一個元素是結(jié)構(gòu),而不是結(jié)構(gòu)中的屬性。而不是結(jié)構(gòu)中的屬性。簡單

23、程序的編寫n3.3.2 結(jié)構(gòu)數(shù)組的創(chuàng)建結(jié)構(gòu)數(shù)組的創(chuàng)建student(1).name=張三張三 student= name:張三張三student(2).name=李四李四 student= 1*2 struct array with fields: namestudent(1).age=21 student= 1*2 struct array with fields: name age簡單程序的編寫n3.3.3 結(jié)構(gòu)數(shù)組元素的引用結(jié)構(gòu)數(shù)組元素的引用nz=student(1) .namenz=n 張三張三簡單程序的編寫n3.3.4 屬性是細胞數(shù)組的情況屬性是細胞數(shù)組的情況nstudent(1)

24、.temp1=xn student=n 1*2 struct array with fields:n namen agen temp1nstudent(1).temp11,1n ans=n 1 2 3n 4 5 6簡單程序的編寫n3.3.5 屬性是結(jié)構(gòu)數(shù)組的情況屬性是結(jié)構(gòu)數(shù)組的情況nstudent(2) .temp2=studentn student=n 1*2 struct array with fields:n namen agen temp1n temp2nstudent(2).temp2n ans=n 1*2 struct array with fields:n namen agen

25、temp1簡單程序的編寫n3.3.6 用構(gòu)造函數(shù)創(chuàng)建一個結(jié)構(gòu)數(shù)組用構(gòu)造函數(shù)創(chuàng)建一個結(jié)構(gòu)數(shù)組ns=struct(name, 張三張三, 李四李四,n age,21,22,n temp1,x,student,n temp2,student,x1,n temp3,x2,x3)簡單程序的編寫n3.3.7 另一個例子另一個例子ndept(1,1).name=數(shù)學數(shù)學;ndept(1,1). classify=理科理科;ndept(1,1). =張老師張老師;ndept(1,1).dean.age=50;ndept(1,1).student=student;簡單程序的編寫ndept(1,

26、2).name=物理物理;ndept(1,2). classify=理科理科;ndept(1,2). =李老師李老師;ndept(1,2).dean.age=55;ndept(2,1).name=法律法律;ndept(2,1). classify=文科文科;ndept(2,1). =王老師王老師;ndept(2,1).dean.age=45;簡單程序的編寫在工作區(qū)雙擊在工作區(qū)雙擊dept,查看內(nèi)部結(jié)構(gòu)查看內(nèi)部結(jié)構(gòu)簡單程序的編寫n3.3 函數(shù)句柄函數(shù)句柄n3.3.1 句柄句柄n在在C語言的程序中,句柄是一個無符號整數(shù),語言的程序中,句柄是一個無符號整數(shù),全局唯

27、一,用以唯一標識一個對象,就像身份全局唯一,用以唯一標識一個對象,就像身份證號一樣。通過句柄,可以查找到對應(yīng)的對象。證號一樣。通過句柄,可以查找到對應(yīng)的對象。n在在matlab中,函數(shù)句柄是一類特殊的數(shù)據(jù)類中,函數(shù)句柄是一類特殊的數(shù)據(jù)類型,變量名稱是型,變量名稱是function_handle。簡單程序的編寫n3.3.2 函數(shù)句柄的使用技巧函數(shù)句柄的使用技巧n使用函數(shù)句柄,可以更為靈活的編寫程序。使用函數(shù)句柄,可以更為靈活的編寫程序。function example_drawCurve(f,x) y=f(x); plot(x,y);n在命令窗口輸入在命令窗口輸入x=-pi:0.1:pi;f=s

28、in;example_drawCurve(f,x)n觀看運行結(jié)果觀看運行結(jié)果簡單程序的編寫n繼續(xù)在命令窗口輸入繼續(xù)在命令窗口輸入f=cos;example_drawCurve(f,x)n觀看運行結(jié)果觀看運行結(jié)果n編寫一個新的函數(shù)編寫一個新的函數(shù)function y=example_circle(x) xi=x./max(x); y=max(x).*(1-abs(xi).2);n在命令窗口輸入在命令窗口輸入f=example_circleexample_drawCurve(f,x)n觀看運行結(jié)果觀看運行結(jié)果簡單程序的編寫n從上面的例子可以看到函數(shù)句柄給編程帶來的從上面的例子可以看到函數(shù)句柄給編程

29、帶來的靈活性,我們可以編寫更為通用、復(fù)用度更高靈活性,我們可以編寫更為通用、復(fù)用度更高的程序。的程序。nmatlab中的函數(shù)句柄與中的函數(shù)句柄與C中的函數(shù)指針有著相中的函數(shù)指針有著相似的作用。似的作用。n3.3.3 作業(yè)作業(yè)n使用函數(shù)句柄編寫程序,實現(xiàn)計算定積分的功使用函數(shù)句柄編寫程序,實現(xiàn)計算定積分的功能。要求把函數(shù)、步長、起始值、終止值參數(shù)能。要求把函數(shù)、步長、起始值、終止值參數(shù)化?;:唵纬绦虻木帉?、類型轉(zhuǎn)換的補充、類型轉(zhuǎn)換的補充簡單程序的編寫n4.1 進制之間的轉(zhuǎn)換進制之間的轉(zhuǎn)換nbin2dec、dec2binndec2hex、hex2decn bin2dec(101010)nans

30、 =n 42n dec2bin(42)nans =n101010簡單程序的編寫n hex2dec(3a)nans =n 58n dec2hex(58)nans =n3A簡單程序的編寫n4.2 字符串和數(shù)值之間的轉(zhuǎn)換函數(shù)字符串和數(shù)值之間的轉(zhuǎn)換函數(shù)n4.2.1 數(shù)值轉(zhuǎn)換為字符串數(shù)值轉(zhuǎn)換為字符串nint2str(a) num2str(a)n a=123na =n 123n b=int2str(a)nb =n123n c=class(b)nc =nchar簡單程序的編寫n a=1.23;n b=num2str(a)nb =n1.23n c=class(b)nc =nchar簡單程序的編寫n4.2.2

31、字符串轉(zhuǎn)換為數(shù)值字符串轉(zhuǎn)換為數(shù)值nstr2num(a)n a=1.23na =n1.23n b=str2num(a)nb =n 1.23000000000000簡單程序的編寫n4.2.3 根據(jù)根據(jù)asc碼把數(shù)值轉(zhuǎn)換為字符的函數(shù)碼把數(shù)值轉(zhuǎn)換為字符的函數(shù)nchar(a)n a=97:(97+26-1);n b=char(a)nb =nabcdefghijklmnopqrstuvwxyzn c=65:(65+26-1);n d=char(c)nd =nABCDEFGHIJKLMNOPQRSTUVWXYZn 簡單程序的編寫n4.2.4 有計算功能的轉(zhuǎn)換函數(shù)有計算功能的轉(zhuǎn)換函數(shù)n 字符串轉(zhuǎn)

32、換為表達式或語句,并在工字符串轉(zhuǎn)換為表達式或語句,并在工作空間中查找變量計算表達式的值,執(zhí)行表達作空間中查找變量計算表達式的值,執(zhí)行表達式或語句。式或語句。neval(a)n x=5;n eval(3*x2+2*x+5)nans =n 90簡單程序的編寫n for n = 1:3n eval(M num2str(n) = magic(n)n endnM1 =n 1nM2 =n 1 3n 4 2nM3 =n 8 1 6n 3 5 7n 4 9 2簡單程序的編寫n 字符串轉(zhuǎn)換為內(nèi)聯(lián)函數(shù),可以在后續(xù)字符串轉(zhuǎn)換為內(nèi)聯(lián)函數(shù),可以在后續(xù)程序中調(diào)用程序中調(diào)用ninline(a)n f=inli

33、ne(pi*r2)nf =n Inline function:n f(r) = pi*r2n f(5)nans =n 78.53981633974483n 簡單程序的編寫nMATLAB中的內(nèi)聯(lián)函數(shù)借鑒了C語言中的內(nèi)聯(lián)函數(shù),在C語言中,內(nèi)聯(lián)函數(shù)是通過編譯器控制來實現(xiàn)的,它只在需要用到的時候,內(nèi)聯(lián)函數(shù)像宏一樣的展開,所以取消了函數(shù)的參數(shù)壓棧,減少了調(diào)用的時間和空間開銷。在MATLAB中也有類似的性質(zhì)。由于內(nèi)聯(lián)函數(shù)是儲存于內(nèi)存中而不是在M文件中,省去了文件訪問的時間,加快了程序的運行效率。簡單程序的編寫n4.3 字符串處理函數(shù)字符串處理函數(shù)nblanks(n) 返回返回n個空字符個空字符deblan

34、k(s) 移除字符串尾部包含的空字符移除字符串尾部包含的空字符findstr(s1,s2) 在在s1中搜索子串中搜索子串s2ischar(s) 判斷是否字符串判斷是否字符串isletter(s) 判斷是否字母判斷是否字母lower(s) 轉(zhuǎn)換小寫轉(zhuǎn)換小寫upper(s) 轉(zhuǎn)換大寫轉(zhuǎn)換大寫strcmp(s1,s2) 比較字符串是否相同比較字符串是否相同strncmp(s1,s2,n) 比較字符串中的前比較字符串中的前n個字符是個字符是否相同否相同strrep(s1,s2,s3) 將將s1中的字符中的字符s2替換為替換為s3簡單程序的編寫5、運算符的補充、運算符的補充簡單程序的編寫5.1 5.1

35、邏輯運算符的補充邏輯運算符的補充5.1.1 5.1.1 異或運算函數(shù)異或運算函數(shù) xor xor a=1,2,0;0,4,5; a=1,2,0;0,4,5; b=0,1,0;1,0,1; b=0,1,0;1,0,1; c=xor(a,b) c=xor(a,b)c =c = 1 0 0 1 0 0 1 1 0 1 1 0簡單程序的編寫5.1.2 5.1.2 邏輯運算函數(shù)邏輯運算函數(shù) all() all() 、any()any()所有元素為所有元素為“真真”,allall返回返回1 1;任意元素為任意元素為“真真”,anyany返回返回1 1。 a= 0 1 2 3;a= 0 1 2 3; res

36、ult=all(a) result=all(a) result=0 result=0 a=1 2 3;4 5 6 a=1 2 3;4 5 6 output=all(a2) output=all(a2) output= 0 0 1 output= 0 0 1簡單程序的編寫5.2 5.2 位運算函數(shù)位運算函數(shù)5.2.1 5.2.1 功能功能對非負整數(shù)進行位對位的邏輯運算。對非負整數(shù)進行位對位的邏輯運算。5.2.2 5.2.2 主要函數(shù)主要函數(shù) 按位與、或、異或按位與、或、異或bitand(a,b)bitand(a,b)bitor(a,b)bitor(a,b)bitxor(a,b)bitxor(a,b)簡單程序的編寫 a=85; a=85; b=15; b=15; c=bitand(a,b) c=bitand(a,b)c =c = 5 5 d=bitor(a,b) d=bitor(a,b)d =d = 95 95 e=bitxor(a,b) e=bitxor(a,b)e =e = 90 900101010

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論