




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第4章 MatLab的程序設(shè)計(jì)MatLab是一個(gè)工具、開發(fā)平臺(tái),同時(shí)它也是一門編程語言。與在命令窗口用交互的方式工作相比,通過程序運(yùn)行來解決實(shí)際問題,其效率更高,因此,凡是復(fù)雜的、大型的應(yīng)用都是以程序的方式執(zhí)行。相對(duì)其它高級(jí)語言,MatLab更簡(jiǎn)單、編程的效率更高、調(diào)試過程也更容易。MatLab中的程序文件是以m為后綴,所以通常將MatLab的程序文件稱為m文件。MatLab提供了兩種形式的m文件,即:腳本(Script)式m文件(就簡(jiǎn)稱m文件)、函數(shù)型m文件。在MatLab中已經(jīng)嵌入了一個(gè)功能強(qiáng)大的集成開發(fā)環(huán)境m文件編輯器,用它來進(jìn)行程序的編輯、修改、調(diào)試、運(yùn)行等,完成應(yīng)用開發(fā)工作。4.1
2、MatLab程序設(shè)計(jì)基礎(chǔ)通過前面內(nèi)容的學(xué)習(xí),大家對(duì)MatLab已經(jīng)有了一個(gè)初步的認(rèn)識(shí)和印象,到目前為止,我們都是在“命令”窗口中,以交互的方式運(yùn)行,完成我們的工作。實(shí)際上簡(jiǎn)單的m文件,就是一個(gè)批處理程序,它是若干條命令的集合。例:4.1.1 M文件規(guī)則和屬性函數(shù)M文件必須遵循一些特定的規(guī)則。除此之外,它們有許多的重要屬性,這其中包括:1. 函數(shù)名和文件名必須相同。例如,函數(shù)fliplr 存儲(chǔ)在名為fliplr.m 文件中。 2. MATLAB頭一次執(zhí)行一函數(shù)個(gè)M文件時(shí),它打開相應(yīng)的文本文件并將命令編輯成存儲(chǔ)器的內(nèi)部表示,以加速執(zhí)行以后所有的調(diào)用。如果函數(shù)包含了對(duì)其它函數(shù)M文件的引用,它們也同樣
3、被編譯到存儲(chǔ)器。普通的腳本M文件不被編譯,即使它們是從函數(shù)M文件內(nèi)調(diào)用;打開腳本M文件,調(diào)用一次就逐行進(jìn)行注釋。 3. 在函數(shù)M文件中,到第一個(gè)非注釋行為止的注釋行是幫助文本。當(dāng)需要幫助時(shí),返回該文本。例如, » help fliplr返回上述前八行注釋。 4. 第一行幫助行,名為H1 行,是由lookfor 命令搜索的行。 5. 函數(shù)可以有零個(gè)或更多個(gè)輸入?yún)⒘俊:瘮?shù)可以有零個(gè)或更多個(gè)輸出參量。 6. 函數(shù)可以按少于函數(shù)M文件中所規(guī)定的輸入和輸出變量進(jìn)行調(diào)用,但不能用多于函數(shù)M文件中所規(guī)定的輸入和輸出變量數(shù)目。如果輸入和輸出變量數(shù)目多于函數(shù)M文件中function 語句一開始所規(guī)定的
4、數(shù)目,則調(diào)用時(shí)自動(dòng)返回一個(gè)錯(cuò)誤。相對(duì)于函數(shù)m文件,腳本式m文件就簡(jiǎn)單多了,它沒有嚴(yán)格的格式要求,只要將有關(guān)的命令或函數(shù)一一敲入即可,但是還是有幾個(gè)問題需要注意:1. m文件的名稱不得與MatLab的內(nèi)部函數(shù)同名、第一個(gè)字符不得為數(shù)字(這點(diǎn)與變量的命名規(guī)則相同);2. 最好在文件的頭部加上注釋,對(duì)該m文件的作用、功能作一個(gè)簡(jiǎn)要說明,而在一些重要命令行后也加上注釋行,以方便使用者閱讀、查找;3. 要特別注意m文件的保存路徑或位置,如果不是保存在MatLab默認(rèn)的路徑下,可以使用addpath函數(shù)來設(shè)置、添加路徑,否則,m文件不能運(yùn)行。腳本式m文件與函數(shù)m文件還有一個(gè)重要區(qū)別:腳本式m文件中的變量均
5、為全局變量,而函數(shù)m文件中的變量則是局部變量。這可以從這兩種程序文件運(yùn)行后在Workspace中留下痕跡看出。當(dāng)然,在函數(shù)m文件中也可以專門將某些變量定義為全局變量(關(guān)鍵字是:global)。不過,在使用全局變量(函數(shù)m文件中)時(shí)應(yīng)特別注意:.全局變量需要函數(shù)體的變量賦值語句之前定義或說明;.全局變量名最好是大寫,而且要盡量長(zhǎng),能反映它本身的含義; .實(shí)際編程時(shí),全局變量也要盡可能少用,因?yàn)橐坏┧谝粋€(gè)地方被改變,那么其它包括該變量的函數(shù)中都得改變,有時(shí)可能會(huì)出現(xiàn)意想不到情況。4.1.2 M文件的組成函數(shù)M文件實(shí)例:function f=fact(n) %函數(shù)定義行 %Compute a fa
6、ctorial value %H1行 %FACT (N)return the factorial of N, %usually denoted by N %幫助文本 %Put simply,F(xiàn)ACT (N)is PROD (1:N ) %注釋 f=prod (1:N ); %函數(shù)體一個(gè)完整的函數(shù)M文件通常包括:. 函數(shù)定義行:定義函數(shù)名以及輸入、輸出變量的數(shù)目和順序;. H1行:對(duì)該函數(shù)進(jìn)行概括性的描述(可用help和Lookfor命令調(diào)出此行);. 幫助文本:這是比H1行更詳細(xì)的幫助信息,使用help命令時(shí)與H1行一起顯示;. 函數(shù)體:這是函數(shù)M文件的主要部分,程序的功能都在此部分實(shí)現(xiàn);.
7、注釋:對(duì)程序行的意義進(jìn)行解釋(與H1行一樣都是用%開頭)。有的函數(shù)M文件還包含return語句!4.1.3 M文件編輯器介紹1. m文件編輯器的啟動(dòng)在命令窗口中敲入:edit點(diǎn)擊工具欄中的新建圖標(biāo)從菜單file/new/M-file中啟動(dòng)2. m文件編輯器的界面菜單欄工具欄編輯窗口3. m文件的運(yùn)行在m文件編輯器內(nèi)在命令窗口中運(yùn)行 在命令窗口直接輸入m文件名,回車即可,但函數(shù)m文件通常還必須帶參數(shù)才能運(yùn)行,也可以利用feval函數(shù)來運(yùn)行函數(shù)m文件,其格式如下:feval('functionname', arg1, arg2, .)對(duì)于腳本式m文件,還可以用run函數(shù)在命令窗口中
8、運(yùn)行存在的m文件。格式:run m文件名 (不必帶文件的后綴)4.1.4 對(duì)函數(shù)M文件的調(diào)用凡是以函數(shù)m文件形式保存的程序文件,均可以被其它函數(shù)m文件或腳本m文件所調(diào)用。例:先定義一個(gè)函數(shù)m文件:%計(jì)算階乘function y=jiech(n)y=1;for i=1:n y=y*i;end編寫m文件實(shí)現(xiàn)對(duì)上述函數(shù)m文件的調(diào)用:function z=dy(n)z=log(jiech(n);4.1.5數(shù)據(jù)類型與結(jié)構(gòu)MatLab的數(shù)據(jù)類型前面已經(jīng)介紹,下面是它們之間的關(guān)系圖:MatLab中結(jié)構(gòu)(教材中稱構(gòu)架)的概念和C語言中的類似,它也包含一個(gè)或多個(gè)域(數(shù)據(jù)容器),每個(gè)域可以包含任何類型的數(shù)據(jù)(這一
9、點(diǎn)與單元數(shù)組又相似),且相互獨(dú)立。下面通過實(shí)例來說明如何建立并訪問結(jié)構(gòu)。用結(jié)構(gòu)建立學(xué)生的數(shù)據(jù)記錄。. 例1:在命令窗口直接創(chuàng)建(或用m文件編輯器)創(chuàng)建。student.num=20070135;='李四'student.age=20;student.weight=67;student.height=1.68;student.test=90 85 76 63 88 54 79; 從這個(gè)例子可以看出結(jié)構(gòu)建立的方法:直接建立結(jié)構(gòu)和各個(gè)域,同時(shí)給各域賦值(也可以不賦值),結(jié)構(gòu)和域之間用點(diǎn)“.”連接。. 用關(guān)鍵字“struct”創(chuàng)建,格式如下:s = struct
10、('field1', values1, 'field2', values2, .)例2:用關(guān)鍵字“struct”創(chuàng)建。student=struct('num',20070135,'name','zhangsan','weight',1.68,'height',75,'test',98 87 65 95 78). 結(jié)構(gòu)的操作 結(jié)構(gòu)域的訪問 結(jié)構(gòu)域的添加、修改直接添加或用函數(shù)setfield()添加;直接修改或用函數(shù)setfield()修改。 結(jié)構(gòu)域的刪除 用函數(shù)rmfi
11、eld()刪除某個(gè)域。格式:s=rmfield(s,'fieldname')4.2 MatLab程序的控制程序的流程控制是高級(jí)語言中必不可少、也是非常重要的部分,要編寫出高質(zhì)量的程序,實(shí)現(xiàn)對(duì)復(fù)雜系統(tǒng)的控制、仿真,這一點(diǎn)也是必須掌握的。MatLab提供了多種控制結(jié)構(gòu),包括:順序結(jié)構(gòu)、選擇(分支)結(jié)構(gòu)以及循環(huán)結(jié)構(gòu),每種結(jié)構(gòu)都有各自的控制機(jī)制,利用它們及其它們的組合可以實(shí)行功能強(qiáng)大的、復(fù)雜的應(yīng)用。4.2.1順序結(jié)構(gòu)順序結(jié)構(gòu)最簡(jiǎn)單,它是一種最基礎(chǔ)的程序結(jié)構(gòu),也是最遵循邏輯思路的程序代碼結(jié)構(gòu),批處理文件就是典型的順序語句文件。這種語句不需要任何特殊的流控制,按照語句的排列順序,一條一條的
12、執(zhí)行,直至結(jié)束。例:4.2.2選擇(或分支)結(jié)構(gòu)如果程序中需要根據(jù)一定條件來執(zhí)行不同的操作時(shí),可以使用條件語句來構(gòu)成選擇或分支結(jié)構(gòu)。在MatLab中可利用if語句來實(shí)現(xiàn)這種結(jié)構(gòu)。if語句的結(jié)構(gòu)通常有以下三種形式:1. 單分支結(jié)構(gòu):這種分支結(jié)構(gòu)最簡(jiǎn)單,格式為:if 表達(dá)式 語句end它只有一個(gè)判斷語句,當(dāng)表達(dá)式為真時(shí),就執(zhí)行語句,否則就不執(zhí)行。例:function f=ifone(x)if x>=0 fprintf('%f is a Positive number.n',x);end2. 雙分支結(jié)構(gòu):此時(shí),采用if-else-end結(jié)構(gòu),語法是: if 表達(dá)式 語句1 el
13、se 語句2 end 即:表達(dá)式為真,系統(tǒng)執(zhí)行語句1,否則將轉(zhuǎn)入語句2執(zhí)行。例:將上面的例子擴(kuò)充function f=ifone(x)if x>=0 fprintf('%f is a positive number.n',x);else fprintf('%f is a negative number.n',x);end3. 多分支結(jié)構(gòu):仍采用if-else-end結(jié)構(gòu),但語法上略有不同,形式如下:if 表達(dá)式1 語句1 %表達(dá)式1為真執(zhí)行語句1 elseif 表達(dá)式2 語句2 %表達(dá)式2為真執(zhí)行語句2 elseif 表達(dá)式3 語句3 %表達(dá)式3為真執(zhí)行語
14、句3 else 語句n %所有表達(dá)式為假執(zhí)行語句n end 例:編寫一個(gè)成績(jī)打印程序。function f=chengji(x)if x>=90 fprintf('%d 分,成績(jī)?yōu)閮?yōu)n',x)elseif x>=80 fprintf('%d 分,成績(jī)?yōu)榱糿',x)elseif x>=70 fprintf('%d 分,成績(jī)?yōu)橹衝',x)elseif x>=60 fprintf('%d 分,成績(jī)?yōu)榧案駈',x)else fprintf('%d 分,成績(jī)?yōu)椴患案駈',x)end4.2.3開關(guān)語句(
15、Switch分支結(jié)構(gòu))開關(guān)語句實(shí)際上也是分支結(jié)構(gòu)的一種,是一種多選擇的分支語句,作用與上面介紹的多分支結(jié)構(gòu)相似,這是MatLab6.0以上版本新增加的功能。該結(jié)構(gòu)的一般調(diào)用格式如下:Switch expression Case value1 Statements Case value2 Statements . Otherwise Statementsend例:采用switch結(jié)構(gòu)的一個(gè)簡(jiǎn)單應(yīng)用。%提示用戶輸入數(shù)據(jù)input_num=input('Enter a number:');%根據(jù)情況判斷數(shù)值大小,顯示數(shù)據(jù)信息switch input_num case -1 disp(
16、'negative one'); case 0 disp('zero'); case 1 disp('positive one'); otherwise disp('other value'); %如果不是上面數(shù)據(jù),顯示“其它數(shù)據(jù)”end4.2.4 try-catch 結(jié)構(gòu)try-catch結(jié)構(gòu)(或模塊)為用戶提供了一種錯(cuò)誤捕捉機(jī)制,利用該模塊,一旦MatLab的編譯系統(tǒng)發(fā)現(xiàn)錯(cuò)誤,就將其捕捉,用戶可以控制MatLab去對(duì)出現(xiàn)的錯(cuò)誤進(jìn)行相應(yīng)處理。它的調(diào)用格式如下:try 語句1catch 語句2end一般來說,語句1中的所有命令都要
17、執(zhí)行,如果在執(zhí)行語句1時(shí),沒有出現(xiàn)錯(cuò)誤,那么在執(zhí)行語句1之后,就直接跳到end后;但是,如果在執(zhí)行語句1時(shí),出現(xiàn)了錯(cuò)誤,程序立刻轉(zhuǎn)到catch模塊中,去執(zhí)行語句2,并可通過調(diào)用lasterr函數(shù)查詢出錯(cuò)的原因。例:見教材中P70例4-4。4.2.5循環(huán)結(jié)構(gòu)很多程序都可能會(huì)出現(xiàn)一些反復(fù)運(yùn)行的部分,前面介紹的這些結(jié)構(gòu)就很難實(shí)現(xiàn)了。同其它高級(jí)語言一樣,MatLab也提供了循環(huán)語句。在循環(huán)語句中,被重復(fù)執(zhí)行的部分稱為循環(huán)體,控制循環(huán)語句是否繼續(xù)的稱為循環(huán)條件。在MatLab中有兩種循環(huán)結(jié)構(gòu),即所謂的for循環(huán)和while循環(huán)。1. for循環(huán) for循環(huán)語句有如下特點(diǎn): 它的循環(huán)判斷條件通常是對(duì)循環(huán)次
18、數(shù)的判斷,即它的循環(huán)次數(shù)是預(yù)先設(shè)定好的; for循環(huán)語句可以嵌套使用。不僅可以對(duì)for本身嵌套,還可以對(duì)其它的結(jié)構(gòu)形式進(jìn)行嵌套使用。for循環(huán)的語法: for i=表達(dá)式 語句1,語句n; end例:求n個(gè)數(shù)的平方。function x=pfh(n)for i=1:n x(i)=i2;end2. while循環(huán)與for循環(huán)不同,while循環(huán)的判斷控制可以是邏輯判斷語句,它的循環(huán)次數(shù)可以是一個(gè)不定數(shù),因此比for循環(huán)有更廣泛的用途。while循環(huán)的格式: while 表達(dá)式 語句 end在這個(gè)循環(huán)中只要表達(dá)式值不為false,程序就一直運(yùn)行下去,語句被反復(fù)執(zhí)行。 例1:求幾個(gè)數(shù)的階乘。func
19、tion m=jiech(x)m=1;n=1; %給m和n賦初值while n<=x m=m*n; n=n+1; %n自增1end例2:Fibonacci數(shù)組的元素滿足Fibonacci 規(guī)則: ,;且?,F(xiàn)要求該數(shù)組中第一個(gè)大于10000的元素。a(1)=1;a(2)=1;i=2;while a(i)<=10000 a(i+1)=a(i-1)+a(i); %當(dāng)現(xiàn)有元素仍小于10000時(shí),繼續(xù)執(zhí)行。 i=i+1;end;i,a(i),例3:綜合實(shí)例,打印九九乘法表(包含for循環(huán)的嵌套及if結(jié)構(gòu))。clear allclcfor i=1:9 for j=1:i fprintf(
20、9;%d*%d=%d, ',j,i,i*j); if j=i fprintf('n'); end endend 思考題:如果希望打印任意個(gè)數(shù)的乘法表怎么實(shí)現(xiàn)?4.2.6輸出格式的設(shè)置在上面的程序中已經(jīng)用到了輸出語句fprintf和disp,對(duì)于這些函數(shù)的使用,一個(gè)最重要的內(nèi)容就是對(duì)它們輸出格式的設(shè)置,MatLab提供了多種可選的輸出格式,方便了用戶的使用。下面表4-1就是一些常用輸出格式的名稱及其作用:輸出格式說 明%c輸出單個(gè)字符(Single character)%d帶符號(hào)十進(jìn)制數(shù)Decimal notation (signed)%f定點(diǎn)數(shù)(Fixed-point
21、notation)%e指數(shù)記數(shù)制Exponential notation (using a lowercase e as in 3.1415e+00)%E指數(shù)記數(shù)制Exponential notation (using an uppercase E as in 3.1415E+00)%s字符串(String of characters)%u無符號(hào)十進(jìn)制數(shù)Decimal notation (unsigned)%i與%d相同Decimal notation (signed)表4-1 輸出格式說明4.3 MatLab的人機(jī)交互命令在MatLab中,還提供了一些特殊的程序控制語句,利用這些語句用可以實(shí)
22、現(xiàn)以交互的方式輸入/輸出數(shù)據(jù)、提前終止循環(huán)、跳出子程序及顯示M文件的執(zhí)行過程等操作,方便用戶與計(jì)算機(jī)之間及時(shí)地進(jìn)行交互。1.終止命令break和return這兩個(gè)命令在使用上的區(qū)別: break是終止循環(huán)(專門針對(duì)for和while循環(huán)),而return是終止程序。break必須在循環(huán)語句內(nèi),return可在任何位置。例:以只讀的方式打開一個(gè)m文件(不運(yùn)行)。fid = fopen('fft.m','r'); %以只讀的方式打開fft.m文件s = '' %定義一個(gè)空字符串?dāng)?shù)組while feof(fid) line = fgetl(fid);
23、if isempty(line), break, end s = strvcat(s,line); %將空格與字符串進(jìn)行垂直連接enddisp(s)return函數(shù)的使用就不在此舉例了。2.繼續(xù)命令continue for或while循環(huán)中,一旦遇到continue語句時(shí),程序立即跳到循環(huán)的end語句,即跳過在continue與end之間的所有命令。例:程序行數(shù)的統(tǒng)計(jì)。fid = fopen('magic.m','r');count = 0;while feof(fid) line = fgetl(fid); if isempty(line) | strncmp
24、(line,'%',1) continue end count = count + 1;enddisp(sprintf('%d lines',count);3.等待用戶反映命令pause 作用:程序運(yùn)行到此暫停,等待用戶的響應(yīng)。 格式: pause 或 pause(n),n暫停的時(shí)間。例:在九九乘法表程序的第一個(gè)fprintf語句后加上pause,看執(zhí)行的效果。4.echo命令 控制m文件中的命令在窗口是否顯示。通常m文件在執(zhí)行過程中并不會(huì)在命令窗口中顯示。例:在m文件中加入echo或echo on??梢宰尦绦蜻\(yùn)行到哪里就顯示在哪里。5.請(qǐng)求用戶輸入命令inpu
25、t 這是人機(jī)交互程序中一個(gè)非常重要的命令,利用它,程序?qū)⒁越换サ姆绞浇邮沼脩舻妮斎霐?shù)據(jù)或字符。例:將九九乘法表程序修改如下:function jjb(m)n=input('請(qǐng)輸入n的值:');fprintf('%d*%d的乘法表是:n',n,n);for i=1:n for j=1:i fprintf('%d*%d=%d, ',j,i,i*j); if j=i fprintf('n'); end endend另外,keyboard命令也可以達(dá)到相似的功能。6.輸出命令disp、fprintffprintf格式化數(shù)據(jù)輸出命令,但它的
26、功能有很多。如將文本或數(shù)據(jù)輸出到設(shè)備(屏幕)、串口或子系統(tǒng)中。disp顯示文本或矩陣,這里的文本包括數(shù)學(xué)符號(hào)、希臘字母等。例:disp(' Corn Oats Hay')disp(rand(5,3)關(guān)于fprintf輸出格式見前面的輸出格式的設(shè)置。4.4 MatLab的符號(hào)計(jì)算MatLab最初將其功能重點(diǎn)放在數(shù)值運(yùn)算、矩陣運(yùn)算等方面,因此,它的符號(hào)計(jì)算功能相對(duì)薄弱,但是,自從MatLab5.3開始,它這方面已經(jīng)在有了很大的改進(jìn)、提高和加強(qiáng)。由于采用了全新的數(shù)據(jù)結(jié)構(gòu)、面向?qū)ο缶幊碳爸剌d技術(shù),使得MatLab的符號(hào)計(jì)算與數(shù)值計(jì)算在形式和風(fēng)格上渾然統(tǒng)一,7.0以后的版本,符號(hào)計(jì)算功能
27、更加強(qiáng)大,如提供了Symbolic Math Toolbax,這使得MatLab的符號(hào)計(jì)算的功能可以與符號(hào)計(jì)算的專用語言Maple、Mathematic等相媲美。MatLab符號(hào)運(yùn)算方法:. MatLab本身已開發(fā)了許多符號(hào)運(yùn)算函數(shù),如:符號(hào)表達(dá)式、符號(hào)矩陣、符號(hào)微積分、符號(hào)線形方程等;. MatLab開發(fā)了與其它符號(hào)計(jì)算語言的接口函數(shù),如:maple.m和map.m使之可以與Maple進(jìn)行相互調(diào)用,博采眾長(zhǎng),這樣,MatLab符號(hào)計(jì)算的功能就進(jìn)一步加強(qiáng)。4.4.1符號(hào)變量的生成和使用1. 符號(hào)變量、符號(hào)表達(dá)式和符號(hào)方程的生成在進(jìn)行符號(hào)計(jì)算之前,首先要生成符號(hào)表達(dá)式等。 用sym函數(shù)定義符號(hào)變
28、量和符號(hào)表達(dá)式格式見教材P81。sym有兩種用法:一是用它定義一個(gè)符號(hào)變量,二是用它對(duì)整個(gè)表達(dá)式進(jìn)行定義。例1:符號(hào)變量的定義。a=sym(2)/sym(5)+sym(1)/sym(3);比較b=sqrt(2)和b=sqrt(sym(2)兩個(gè)式子的輸出結(jié)果。例2:符號(hào)表達(dá)式的定義。a=sym(a);b=sym(b);c=sym(c);x=sym(x); f=a*x2+b*x+c或者:f=sym('a*x2+b*x+c') 用syms函數(shù)定義符號(hào)變量和符號(hào)表達(dá)式從例2可以看出:用sym定義符號(hào)變量還是比較麻煩,它每次只能定義一個(gè)符號(hào)變量,像上面有多個(gè)變量需要定義的話,不方便。Sy
29、ms則方便多了。其格式為:syms var1 var2 var3 例:syms x y zf=x2+2*y2+3*z2 符號(hào)方程式的生成方程與函數(shù)的區(qū)別在于函數(shù)是一個(gè)由數(shù)字和變量組成的代數(shù)式,而方程則是由函數(shù)和等號(hào)組成的等式,但它們的定義卻沒有什么差別。例:equa1=sym('sin(x)+cos(x)=1')2. 符號(hào)變量的基本操作 符號(hào)變量的尋找(findsym函數(shù)的使用)例:findsym(equa1) 或 findsym(f) 等。 符號(hào)表達(dá)式的精度(digits、vap函數(shù))digits函數(shù)用于顯示或設(shè)定數(shù)值的精度;例:digits digits(100)vap函數(shù)
30、進(jìn)行可控精度運(yùn)算,與digits也有些相似。例:vpa(pi) vpa(pi,1000) 數(shù)值型變量符號(hào)型變量的轉(zhuǎn)換形式對(duì)于任意數(shù)值變量,使用sym函數(shù)可以將其轉(zhuǎn)換為4種形式的符號(hào)變量,它們是:有理數(shù)形式: sym(t)或sym(t,'r');浮點(diǎn)數(shù)形式: sym(t,'f');指數(shù)形式: sym(t,'e');數(shù)值精度形式:sym(t,'d')。4.4.2符號(hào)表達(dá)式運(yùn)算MatLab提供的符號(hào)運(yùn)算函數(shù)很多,如:四則運(yùn)算、合并同類項(xiàng)、因式分解、展開、化簡(jiǎn)等,靈活使用這些函數(shù),可以給我們的工作帶來便利。下面舉例說明。1. 符號(hào)表達(dá)式的四則運(yùn)算2. 合并符號(hào)表達(dá)式的同類項(xiàng)(Collect函數(shù))例:syms x y;R1 = collect(exp(x)+x)*(x+2)R2 = collect(x+y)*(x2+y2+1), y)R3 = collect(x+1)*(y+1),x+y)3.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO/TR 23652:2024 EN Nanotechnologies - Considerations for radioisotope labelling methods of nanomaterials for performance evaluation
- 【正版授權(quán)】 ISO 4064-1:2024 EN Water meters for cold potable water and hot water - Part 1: Metrological and technical requirements
- 包露與配偶2025年度離婚經(jīng)濟(jì)補(bǔ)償及贍養(yǎng)費(fèi)協(xié)議
- 2025年度太陽能光伏發(fā)電系統(tǒng)設(shè)計(jì)與施工總承包協(xié)議
- 2025年度環(huán)境安全監(jiān)測(cè)與治理服務(wù)合同協(xié)議
- 班級(jí)體育活動(dòng)的組織與安排計(jì)劃
- 庫存分析對(duì)倉庫決策的支持計(jì)劃
- 急診呼吸機(jī)使用規(guī)范與管理計(jì)劃
- 提高團(tuán)隊(duì)創(chuàng)新力的工作總結(jié)計(jì)劃
- 2025年建筑鋁擠壓材項(xiàng)目建議書
- 《“白山黑水”-東北三省》示范課課件(第1課時(shí))
- 孔氏家廟的社會(huì)調(diào)查報(bào)告
- 大學(xué)生創(chuàng)新創(chuàng)業(yè)基礎(chǔ)(創(chuàng)新創(chuàng)業(yè)課程)全套教學(xué)課件
- 礦山開工第一課
- 員工節(jié)能環(huán)保培訓(xùn)課件
- 華為公司的內(nèi)部審計(jì)制度
- 腫瘤醫(yī)院病歷書寫培訓(xùn)課件
- 《蓄電池培訓(xùn)》課件
- 學(xué)校行政領(lǐng)導(dǎo)夜間值班制度
- 32軟件測(cè)試報(bào)告GJB438C模板
- 合同移交登記表
評(píng)論
0/150
提交評(píng)論