




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第5章MATLAB程序設(shè)計基本知識5.1MATLAB的變量與表達(dá)式5.2字符串?dāng)?shù)組、單元數(shù)組和結(jié)構(gòu)數(shù)組5.3MATLAB的運算符和操作符5.4關(guān)系運算與邏輯運算5.5MATLAB程序結(jié)構(gòu)5.6程序流控制語句小結(jié)
習(xí)題
MATLAB作為一種高級應(yīng)用軟件,除了命令行操作的直接交互方式以外,還有自己的編程語言。為了充分發(fā)揮和體現(xiàn)MATLAB的功能,讀者還需掌握MATLAB的程序設(shè)計方法。本章詳細(xì)介紹MATLAB程序設(shè)計的基本知識,通過本章的學(xué)習(xí),讀者可以掌握關(guān)于MATLAB程序設(shè)計的方法,增強設(shè)計應(yīng)用程序的能力。
MATLAB不僅是一個功能強大的工具軟件,更是一種高效的編程語言。MATLAB的編程效率比常用的BASIC、C、FORTRAN和PASCAL等語言要高得多,而且容易維護。MATLAB軟件即MATLAB語言的編程環(huán)境,M文件也就是用MATLAB語言編寫的程序代碼文件。本章從語言的角度介紹編寫MATLAB基本程序的規(guī)則和方法。5.1MATLAB的變量與表達(dá)式
5.1.1MATLAB的變量與類型
1.變量命名規(guī)則
在MATLAB中,對變量(包括函數(shù))命名時應(yīng)遵循以下規(guī)則:
(1)變量名和函數(shù)名對字母的大小寫敏感,即MATLAB區(qū)分字母的大小寫。
(2)變量名的第一個字符必須是英文字母,最多可包括31個字符。
(3)變量名可由英文字母、數(shù)字和下劃線混合組成。
(4)變量名中不得包含空格(Backspace)和標(biāo)點,但可以有下連字符。如變量名my_var_330就是合法的。
2.局部變量和全局變量
通常每個函數(shù)體內(nèi)都有自己定義的變量,不能從其他函數(shù)和MATLAB工作空間訪問這些變量,這就是局部變量。如果要使某個變量在幾個函數(shù)及MATLAB函數(shù)中都能使用,則它就是全局變量。全局變量名應(yīng)盡可能大寫,并用“global”聲明。如果要在幾個函數(shù)和MATLAB工作空間中都能訪問一個全局變量,則需在每個函數(shù)和MATLAB工作空間中都聲明該變量是全局變量。全局變量要在函數(shù)體的變量賦值語句之前說明,整個函數(shù)以及所有對函數(shù)的遞歸調(diào)用都可以利用全局變量。注意:在實際編程中,應(yīng)盡量避免使用全局變量,因為全局變量的值一旦改動,則在其他包括該變量的函數(shù)中都將改變,這樣有可能會出現(xiàn)不可預(yù)見的情況。
3.永久變量
上面提到定義變量時,有些MATLAB的保留字符不能用,其中有一部分就是MATLAB的永久變量,也稱為預(yù)定義變量(PredefinedVariable)。每當(dāng)MATLAB啟動時,系統(tǒng)自動定義變量,駐留于內(nèi)存中,它們不會被命令clear清除(永久變量的名稱就源于此)。系統(tǒng)也可以為這些永久變量賦值,但所賦的值可以用clear命令清除,從而恢復(fù)系統(tǒng)預(yù)定義的值(預(yù)定義變量的名字就反映這個意思)。Who命令看不到永久變量(除非是適用的MATLAB3.0版)。MATLAB的永久變量如表5-1所示。注意:用戶在編寫指令和程序時,盡可能不對表5-1中所列永久變量名重新賦值,以免產(chǎn)生混淆。表5-1MATLAB的永久變量
【例5-1】無窮大的使用和作用。
y=1/0%無窮大的使用
1/y%無窮大的作用和ans變量的使用結(jié)果為:
Warning:Dividebyzero.
y=
Inf
ans=
0注意:在MATLAB中,像1/0這樣的操作不會引起程序執(zhí)行中斷,只是在給出警告信息的同時,用一個永久變量inf來表示,而且這個變量和其他變量一樣,可以在各種運算中發(fā)揮巨大的作用。對于y(inf)同樣可以當(dāng)作一個變量來使用,此特點在編程中有很大作用。5.1.2MATLAB基本表達(dá)式
MATLAB采用的是表達(dá)式語言,用戶輸入的語句由MATLAB系統(tǒng)解釋運行。用戶可以在MATLAB的命令窗口中鍵入命令,也可以在編輯器內(nèi)編寫應(yīng)用程序,MATLAB軟件對此命令或程序中的各條語句進(jìn)行翻譯,然后在MATLAB環(huán)境下對它進(jìn)行處理,最后返回運算結(jié)果。MATLAB語句由表達(dá)式和變量組成,有兩種最常見的語句形式:表達(dá)式變量=表達(dá)式
MATLAB書寫表達(dá)式的規(guī)則與“手寫算式”幾乎相同,具體規(guī)定為:
(1)表達(dá)式由變量名、運算符、數(shù)字和函數(shù)名組成。它在MATLAB中占有很重要的位置,幾乎所有的運算都必須借助表達(dá)式來進(jìn)行。
(2)表達(dá)式將按常規(guī)的優(yōu)先級從左至右執(zhí)行運算。
(3)優(yōu)先級的規(guī)定是:指數(shù)運算級別最高,乘除運算次之,加減運算級別最低。
(4)括號可以改變運算順序。
(5)書寫表達(dá)式時,賦值符“=”和運算符兩側(cè)允許有空格,以增加可讀性。但在復(fù)數(shù)或符號表達(dá)式中要盡量避免,以防出錯。
(6)表達(dá)式的末尾可加上“;”,也可以不加。有“;”時,MATLAB系統(tǒng)不顯示計算結(jié)果,而是直接把數(shù)值賦給變量,如果沒有用變量就無法看到結(jié)果;沒有“;”時,MATLAB系統(tǒng)將會在該條語句的下面直接顯示運算結(jié)果。在MATLAB語句的第一種形式中,表達(dá)式運算后產(chǎn)生的結(jié)果如果是矩陣或其他數(shù)值類型,則MATLAB系統(tǒng)將會自動賦給變量名ans,并顯示在屏幕上。ans是一個默認(rèn)的永久變量,它會在以后類似的操作中被自動覆蓋掉,所以重要的結(jié)果一定要記錄下來。也就是使用第二種形式。在MATLAB語句的第二種形式中,“=”右邊的表達(dá)式計算后產(chǎn)生的結(jié)果,MATLAB系統(tǒng)會自動賦給“=”左邊的變量,然后存入內(nèi)存中,并顯示在屏幕上。
MATLAB語言與C語言不同,它允許一次返回多個結(jié)果,這時“=”左邊是用“[]”括起來的變量列表,例如命令函數(shù):[X,Y,Z]=peaks;它返回了坐標(biāo)列向量X,Y,Z的值。
【例5-2】創(chuàng)建一個表達(dá)式。
x=(3*4^2+exp(sin(45)))/6
x=
8.39035.2字符串?dāng)?shù)組、單元數(shù)組和結(jié)構(gòu)數(shù)組
5.2.1MATLAB的數(shù)據(jù)結(jié)構(gòu)
MATLAB是一種面向數(shù)組(array)的編程語言,其數(shù)據(jù)類型的最大特點是每一種類型都以數(shù)組為基礎(chǔ),從數(shù)組中派生出來。事實上,MATLAB把每種類型的數(shù)據(jù)都作為數(shù)組來處理。在MATLAB7.0中,有6種基本的數(shù)據(jù)類型:char(字符)、double(雙精度數(shù)值)、sparse(稀疏數(shù)據(jù))、storage(存儲型)、cell(單元數(shù)組)和struct(結(jié)構(gòu))。數(shù)據(jù)類型間的關(guān)系如圖5-1所示。圖5-1MATLAB7.0的數(shù)據(jù)結(jié)構(gòu)說明:
·在圖5-1中,存儲型是一個虛擬數(shù)據(jù)類型,這是MATLAB5.3版以后新增的定義。它包括int8(8位整型)、unit8(無符號8位整型)、int16(16位整型)、unit16(無符號16位整型)、int32(32位整型)和unit32(無符號32位整型)。
·最常用的數(shù)據(jù)類型只有雙精度型和字符型,所有MATLAB計算都把數(shù)據(jù)當(dāng)作雙精度型進(jìn)行處理。
·其他數(shù)據(jù)類型只在一些特殊條件下使用。例如,無符號8位整型一般用于儲存圖像數(shù)據(jù);稀疏數(shù)據(jù)一般用于處理稀疏矩陣;單元數(shù)組和結(jié)構(gòu)數(shù)組一般用在大型程序中。
·存儲型數(shù)組一般只用于內(nèi)存的有效儲存,可對這些類型的數(shù)組進(jìn)行操作,但不能進(jìn)行任何數(shù)學(xué)運算,否則必須用double函數(shù)把它轉(zhuǎn)換為雙精度類型。
MATLAB的字符串?dāng)?shù)組(CharacterStringArray)、單元數(shù)組(CellArray)和結(jié)構(gòu)數(shù)組(StructureArray)之間以及與數(shù)值數(shù)組(NumericArray)之間的基本差別如表5-2所示。表5-2MATLAB中四種數(shù)據(jù)類型的比較5.2.2MATLAB字符串?dāng)?shù)組對于MATLAB編程來說,字符處理必不可少。對于字符串的使用應(yīng)符合以下規(guī)定:
·所有字符串都用單引號括起來。
·字符串中的每個字符都是字符串變量(矩陣或向量)中的一個元素。
·字符串中的字符以ASCII碼形式儲存并區(qū)分大小寫。用函數(shù)abs可以看到字符的ASCII碼。
MATLAB有強大的字符處理功能,其字符串處理函數(shù)如表5-3所示。表5-3字符串處理函數(shù)下面介紹幾種常用的字符串操作。
1.字符串?dāng)?shù)組的建立
1)直接賦值法建立字符串?dāng)?shù)組建立字符串時,可通過直接賦值先把待建的字符放在單引號中,然后直接賦值給變量。如:
a=′Thisisabook′
a=
Thisisabook
2)建立中文字符串?dāng)?shù)組創(chuàng)建中文字符串時,字符外邊的單引號對必須在英文狀態(tài)下輸入。與英文字符一樣,每個中文字符也占一個元素位置,但應(yīng)注意此時的ASCII大于256。如:
′A=中國長城′
A=中國長城
3)建立帶單引號的字符串當(dāng)字符串中的字符包含有(英文)單引號時,每個單引號符用連續(xù)的兩個單引號符表示。
B=′China′′中國′′′
B=
China′中國′
4)有效字符串連成長字符串字符串可以連接到一起組成更大的字符串,可以直接在中括號內(nèi)用逗號連接,也可以通過函數(shù)strcat連接。如:
ab=[A,′′,B,′.′]%第二個輸入是表示輸入空格字符串
ab=中國長城China′中國′
strcat(A,B)%函數(shù)strcat連接,忽略原字符串結(jié)尾處的空格
ans=中國長城China′中國′
5)多行字符串?dāng)?shù)組的直接創(chuàng)建在直接創(chuàng)建多行字符串?dāng)?shù)組時,要保證同一字符串?dāng)?shù)組的各行字符數(shù)相等,即保證各行等長。如果不等長,則用空格符來調(diào)節(jié)其長度,使它們彼此相等。如:
AB=[′中國′;′changcheng′]
AB=中國
changcheng
6)利用字符串操作函數(shù)創(chuàng)建字符串?dāng)?shù)組在MATLAB中,專用函數(shù)char、str2mat和strvcat用來創(chuàng)建多行字符串?dāng)?shù)組。在用這三個函數(shù)創(chuàng)建多行數(shù)組時,不必?fù)?dān)心每行字符是否相等,它們總會按最長行設(shè)置第二維的長度,其他行的尾部用空格填充。它們的調(diào)用格式為:
S=char(T1,T2,T3,…)
S=str2mat(T1,T2,T3,…)
S=strvcat(T1,T2,T3,…)上式中,T1、T2、T3是字符串,在輸入時,T1,T2,T3,…兩邊要加英文狀態(tài)下的單引號。
7)利用轉(zhuǎn)換函數(shù)建立字符串?dāng)?shù)組在MATLAB中,把數(shù)值數(shù)組轉(zhuǎn)換為字符串?dāng)?shù)組的常用函數(shù)為int2str、num2str和mat2str,其調(diào)用格式可用命令helpint2tre、helpnum2str和helpmat2str來查看。從MATLAB5.x版本以后,又增加了兩個命令char和double:函數(shù)命令char可把ASCII碼數(shù)組轉(zhuǎn)換為字符串?dāng)?shù)組;命令double可把其他任何數(shù)組轉(zhuǎn)換為數(shù)值數(shù)組。注意:中文字符能被命令char和double正確轉(zhuǎn)化。
2.字符串?dāng)?shù)組的元素標(biāo)識
在一維字符串?dāng)?shù)組中,MATLAB按從左向右的順序用自然數(shù)數(shù)碼(1,2,3等)標(biāo)識字符位置,其操作也用標(biāo)識來進(jìn)行。5.2.3MATLAB單元數(shù)組單元數(shù)組(CellArray)是一種比較特殊的MATLAB數(shù)組,該數(shù)組的基本成分是單元,它的每個元素都是一個單元,單元中包含其他MATLAB數(shù)組。每個單元本身在數(shù)組中是平等的,它們只能以下標(biāo)區(qū)分。單元內(nèi)可以存放任何類型、任何大小的數(shù)組,而且同一單元數(shù)組內(nèi)各單元的內(nèi)容可以不同。同數(shù)值數(shù)組一樣,單元數(shù)組的維數(shù)不受限制,可以是一維、二維或更高維。單元數(shù)組對單元的編址方法有單下標(biāo)編址和全下標(biāo)編址。對于單元數(shù)組來說,單元和單元里的內(nèi)容是兩個不同的范疇。因此,尋訪單元和尋訪單元內(nèi)容是兩種不同的操作。以二維單元數(shù)組為例,A(2,3)是指A單元數(shù)組中的第二行第三列單元元素;而A{2,3}是指A單元數(shù)組中的第二行第三列單元中所允許存或取的內(nèi)容。兩者的區(qū)別僅是用圓括號還是用花括號。
1.單元數(shù)組的建立
在MATLAB中,有三種方法來建立單元數(shù)組。
1)利用賦值語句建立單元數(shù)組利用賦值語句建立單元數(shù)組又有兩種不同的方式:
(1)用小括號括起單元的下標(biāo),在賦值語句的右側(cè)用花括號括起單元的內(nèi)容。如:
A(1,1)={′matlab′};%單元(1,1),字符串
A(1,2)={7.0}; %單元(1,2),標(biāo)量,記錄版本號
A(2,1)={′矩陣′}; %單元(2,1),中文字符串
A(2,2)={[234;2314;548]};%單元(2,2),矩陣
A%列出矩陣A
A=%結(jié)果
′matlab′[7]
′矩陣′[3x3double]
(2)用花括號括起單元的下標(biāo),在賦值語句的右側(cè)直接指定單元的內(nèi)容。如上面命令可寫成:
A{1,1}=′matlab′;%單元(1,1)中的內(nèi)容
A{1,2}=7.0;%單元(1,2)中的內(nèi)容
A{2,1}=′矩陣′;%單元(2,1)中的內(nèi)容
A{2,2}=[234;2314;548];%單元(2,2)中的內(nèi)容
2)利用單元數(shù)組法(花括號)建立單元數(shù)組也就是在花括號中直接賦值,單元與單元之間用逗號、空格或分號隔開。使用如下語句也可得出與上面相同的單元數(shù)組:
A={′matlab′,7.0;′矩陣′,[234;2314;548]}或
A={′matlab′7.0;′矩陣′[234;2314;548]}
上兩式中,7.0后面的分號表示數(shù)組另起一行,不能用別的符號代替。
3)利用函數(shù)cell建立單元數(shù)組
cell函數(shù)用來預(yù)分配指定大小的單元數(shù)組,其調(diào)用格式為:
(1)c=cell(n):建立n×n的單元數(shù)組,單元是空矩陣。
(2)C=cell(m,n)或cell([m,n]):建立m×n的單元數(shù)組,單元是空矩陣。
(3)C=cell(m,n,p,…)或cell([mnp…]):建立m×n×p×…的單元數(shù)組,單元是空矩陣。
(4)C=cell(size(A)):建立和A大小相同的單元數(shù)組。
2.單元數(shù)組的訪問和顯示
在MATLAB中,單元數(shù)組的訪問有兩種方式:
(1)用內(nèi)容下標(biāo)(花括號)訪問單元內(nèi)容。如上面的單元數(shù)組A:
A{1,1}%訪問第(1,1)個單元中的內(nèi)容
ans=
matlab
(2)用單元下標(biāo)(小括號)訪問單元子集。又如數(shù)組A:
A(1,1)%訪問第(1,1)個單元
ans=
′matlab′
b=A(1:2,1)%把單元數(shù)組A中第一列的兩個單元賦給b,b也成為單元數(shù)組
b=
′matlab′
′矩陣′
單元數(shù)組中的內(nèi)容一般以壓縮的形式顯示。為了形象地查看單元數(shù)組中的內(nèi)容,MATLAB提供了函數(shù)cellplot,而函數(shù)celldisp只是顯示單元數(shù)組的全部或部分內(nèi)容。函數(shù)cellplot的調(diào)用格式為:
H=cellplot(C,′legend′):式中第二個輸入?yún)?shù)用于實現(xiàn)色彩圖例,該命令用大白方格表示單元,用小方格表示所存的數(shù)組元素,色彩表示數(shù)據(jù)屬性。如數(shù)組A用圖形方式顯示為:
cellplot(A,′legend′)結(jié)果如圖5-2所示。圖5-2用圖形方式顯示單元數(shù)組
3.單元數(shù)組的操作
在MATLAB中,可對單元數(shù)組進(jìn)行一系列操作,如:·把單元(注意,不是單元內(nèi)容)設(shè)置為空來刪除該單元數(shù)組中的單元。
·用函數(shù)reshape改變單元數(shù)組的大小,但要注意改變形狀時數(shù)組中的元素個數(shù)。
·單元數(shù)組也可像一般數(shù)組那樣用方括號進(jìn)行連接。
·單元數(shù)組可代替用逗號或空格分隔的變量列表。
·如果數(shù)組中的多個單元是用花括號和冒號一起引用的,MATLAB則把每個單元的內(nèi)容看做一個獨立的變量。
5.2.4MATLAB結(jié)構(gòu)數(shù)組
MATLAB中的結(jié)構(gòu)數(shù)組(StructureArray)與單元數(shù)組一樣,能在一個數(shù)組存放各類數(shù)組。從一定意義上講,結(jié)構(gòu)數(shù)組組織數(shù)據(jù)的能力比單元數(shù)組更強、更富于變化。結(jié)構(gòu)數(shù)組的基本成分是結(jié)構(gòu)(Structure),數(shù)組中的每個結(jié)構(gòu)相等,它們以下標(biāo)區(qū)分。結(jié)構(gòu)必須在劃分“域”后才能使用。數(shù)據(jù)不能直接存放在結(jié)構(gòu)上,而只能存放在域中。結(jié)構(gòu)的域可以存放任何類型、任何大小的數(shù)組,而且不同結(jié)構(gòu)的同名域中存放的內(nèi)容可以不同。
1.結(jié)構(gòu)數(shù)組的建立和訪問
1)直接建立結(jié)構(gòu)數(shù)組此方法直接建立結(jié)構(gòu)和各個域,同時給各域賦值(也可以不賦值),結(jié)構(gòu)和域之間用點連接。在訪問結(jié)構(gòu)數(shù)組的各個域時,也是“結(jié)構(gòu)數(shù)組名.域名”的格式。當(dāng)結(jié)構(gòu)帶有子域時,需完整地鍵入結(jié)構(gòu)名、域名、子域名,才能顯示域中的內(nèi)容。結(jié)構(gòu)數(shù)組的各個域可以按照其本身的數(shù)據(jù)類型進(jìn)行相應(yīng)的各種運算。下面我們通過一個例子來說明如何創(chuàng)建和訪問結(jié)構(gòu)數(shù)組。
【例5-3】建立一橋梁混凝土試件強度的結(jié)構(gòu)數(shù)組。
bridge.Name=′XX大橋′;%域名為name,中文字符串,記錄橋名
bridge.position=′頂板′;%域名為position,中文字符串,記錄試件位置
bridge.position.group=′2組′;%子域名為group,字符串,記錄組數(shù)
bridge.position.value=[28.429.430.1;26.829.028.8];%子域名為value,記錄試件強度
bridge%得到結(jié)構(gòu)數(shù)組的內(nèi)容如下
bridge=
name:′XX大橋′
position:[1x1struct]
bridge.position%顯示域position中的內(nèi)容
ans=
group:′2組′
value:[2x3double]
bridge.position.value%顯示域value中的內(nèi)容
ans=
28.400029.400030.1000
26.800029.000028.8000
2)用函數(shù)structure命令創(chuàng)建結(jié)構(gòu)數(shù)組除了上面所講述的直接建立結(jié)構(gòu)數(shù)組外,MATLAB還有一個專門建立結(jié)構(gòu)數(shù)組的函數(shù)structue。該函數(shù)命令的調(diào)用格式為:
S=struct(′field1′,values1,′field2′,values2,…)用指定的域名和各個域的數(shù)據(jù)建立結(jié)構(gòu)數(shù)組。如果數(shù)組中包含多個結(jié)構(gòu),而且各個結(jié)構(gòu)域中的數(shù)據(jù)不盡相同,則域的數(shù)據(jù)valuesl、values2…必須是單元數(shù)組,建立的結(jié)構(gòu)數(shù)組和單元數(shù)組的大小相同。如:
s=struct(′type′,{′big′,′little′},′color′,′red′,′x′,{34})%建立結(jié)構(gòu)數(shù)組結(jié)果為:
s=
1x2structarraywithfields:
type
color
x在MATLAB中,對結(jié)構(gòu)數(shù)組域中內(nèi)容的調(diào)取和設(shè)置可通過函數(shù)getfield和setfield進(jìn)行;利用函數(shù)rmfield可以刪除結(jié)構(gòu)的域;利用函數(shù)struct2cell和cell2struct可以進(jìn)行結(jié)構(gòu)數(shù)組和單元數(shù)組之間的轉(zhuǎn)換。這些命令的調(diào)用格式和使用可參看MATLAB的幫助文件。
2.數(shù)據(jù)的分配
MATLAB中的函數(shù)deal可把輸入數(shù)據(jù)分配給輸出數(shù)據(jù),其調(diào)用格式為:[A,B,C,…]=deal(X,Y,Z,…);等價于A=X,B=Y,C=Z,…[A,B,C,…]=deaL(X);等價于A=X,B=X,C=X,…這個函數(shù)對于結(jié)構(gòu)和單元數(shù)組很有用。下面舉一個例子來說明:
sys={rand(3)one(3,1)eye(3)zeros(3,1)};%單元數(shù)組sys
[a,b,c,d]=deal(sys{:});%把sys中的每個“單元”分配給相對應(yīng)的變量
a=
0.95010.48600.4565
0.23110.89130.0185
0.60680.76210.8214
b=
1
1
1
c=
100
010
001
d=
0
0
0
注意:例中的sys{:}和sys不同,sys是將整個單元數(shù)組分配給每個變量。5.3MATLAB的運算符與操作符在MATLAB中,一般的運算符和操作符構(gòu)成了運算最基本的操作指令,例如加、減、乘、除和乘方等運算,這些指令幾乎在所有計算機語言中都有,并且大同小異。在MATLAB中,幾乎所有的運算都是以矩陣為基本的運算單元,這與大多數(shù)計算機語言不同,也是MATLAB的顯著特點。
5.3.1運算符在MATLAB中,最常見的運算符如表5-4所示。表5-4MATLAB的常用運算符注意:在矩陣運算中,左除和右除有一定的區(qū)別。5.3.2操作符
在MATLAB中,操作符在資料構(gòu)造和運算中非常有用。各操作符的含義如表5-5所示。表5-5中幾個常用操作符解釋如下:
·冒號“:”——冒號在矩陣的構(gòu)造和運算中極為實用,它可以用來產(chǎn)生向量,用作矩陣的下標(biāo),部分地選擇矩陣元素,進(jìn)行行循環(huán)操作等。
·連續(xù)號“…”——如果一個命令很長,一行容不下,則可以在一行的末尾加三個或更多的點,表示此行未完,而在下一行繼續(xù)。
·分號“;”——在方括號中,分號表示矩陣中行的結(jié)尾。如用在每行的結(jié)尾,則MATLAB不會顯示該行運算的結(jié)果。此功能可以用在M文件中控制命令的顯示,減少輸出篇幅。表5-5MATLAB的操作符5.4關(guān)系運算與邏輯運算
在程序流控制中,常有一些邏輯和模糊邏輯的推理,需要對其作出“是真、是假”的回答。為此,MATLAB提供了強大的關(guān)系運算和邏輯運算。雖然其他程序語言中也有類似的關(guān)系和邏輯運算,但MATLAB作為一種比較完善的科學(xué)計算環(huán)境,有其自身的特點。在關(guān)系和邏輯運算中,MATLAB有以下規(guī)定:
·在所有的關(guān)系表達(dá)式和邏輯表達(dá)式中,輸入的任何非0數(shù)都被看做是“邏輯真”,而只有0才被認(rèn)為是“邏輯假”。
·所有關(guān)系表達(dá)式和邏輯表達(dá)式的計算結(jié)果是一個由0和1組成的“邏輯數(shù)組(LogicalArray)”,數(shù)組中的1表示“真”,0表示“假”。
·邏輯數(shù)組是一種特殊的數(shù)值數(shù)組,與“數(shù)值類”有關(guān)的操作和函數(shù)對它也適用;但它又不同于普通的“數(shù)值”,它還表示對事物的判斷結(jié)論“真”與“假”,有其自身的特殊用途。
5.4.1關(guān)系運算
MATLAB關(guān)系操作符用來比較兩個同樣大小的數(shù)組,或用來比較一個數(shù)組和一個標(biāo)量。MATLAB關(guān)系操作符如表5-6所示,其中包括所有常用的比較操作。表5-6關(guān)系操作符
MATLAB的關(guān)系操作符的運算法則:
(1)當(dāng)兩個變量是標(biāo)量a和b時,
·若a、b之間關(guān)系成立,則關(guān)系運算結(jié)果為1;
·若a、b之間關(guān)系不成立,則關(guān)系運算結(jié)果為0;
·當(dāng)兩個維數(shù)相同的數(shù)組A和B進(jìn)行比較時,數(shù)組A、B比較的是相同位置的元素,按標(biāo)量的運算規(guī)則逐個進(jìn)行。關(guān)系運算的結(jié)果是一個維數(shù)和A相同的數(shù)組,它的元素由0和1組成。(2)當(dāng)一個數(shù)組A和一個標(biāo)量b進(jìn)行比較時,把標(biāo)量b和數(shù)組A的每一個元素按標(biāo)量關(guān)系運算規(guī)則逐個比較。關(guān)系運算的結(jié)果是一個維數(shù)和數(shù)組A相同的數(shù)組,它是由0和1組成。
(3)優(yōu)先級由高到低為算術(shù)運算、關(guān)系運算和邏輯運算。
【例5-4】關(guān)系運算示例。
A=[348;902;537]%輸入矩陣A
B=[441;784;517]%輸入矩陣B
A=[HJ*5/8]
3
4
8
9
0
2
5
3
7
B=
4
4
1
7
8
4
5
1
7
E=(A==B)%比較矩陣A和B是否相等
E=
0
1
0
0
0
0
1
0
1
NE=(A~=B)%比較矩陣A和B是否不等
NE=
1
0
1
1
1
1
0
1
0
A0=(A>5)%標(biāo)出矩陣A中大于5的元素
A0=
0
0
1
1
0
0
0
0
1
B0=(B<=6)%標(biāo)出矩陣B中小于等于6的元素
B0=
1
1
1
0
0
1
1
1
0
5.4.2邏輯運算邏輯運算和邏輯函數(shù)在計算機語言中普遍存在。邏輯運算符提供了一種組合或否定關(guān)系表達(dá)式。在MATLAB中邏輯操作符如表5-7所示。下面是MATLAB中邏輯操作符的運算法則:
(1)在邏輯運算中,非0元素的邏輯量為“真”,用1表示;0元素的邏輯量為“假”,用0表示。
(2)如果兩個標(biāo)量a和b運算,則:
·a&b:當(dāng)a、b全是非0時,運算結(jié)果是1,否則是0;
·a|b:當(dāng)a、b中只要有一個非0,運算結(jié)果為1;
·~a:當(dāng)a是0時,運算結(jié)果是1,否則是0。表5-7邏輯操作符
(3)如果兩個維數(shù)相同的數(shù)組A和B參與運算,則將數(shù)組A和B相同位置上的元素按標(biāo)量的運算規(guī)則逐個進(jìn)行運算。邏輯運算的結(jié)果是返回一個由0和1組成的與數(shù)組A具有同樣維數(shù)的數(shù)組。
(4)如果標(biāo)量b和數(shù)組A參與運算,則:
·將標(biāo)量b和數(shù)組A中的每個元素進(jìn)行邏輯運算。邏輯運算的結(jié)果是返回一個由0和1組成的與數(shù)組A具有同樣維數(shù)的數(shù)組;
·邏輯“非”運算是一元運算符,服從數(shù)組運算規(guī)則;
·在邏輯“與”、“或”、“非”三者中,“與”與“或”具有相同的優(yōu)先級,從左向右依次執(zhí)行,而都低于“非”的優(yōu)先級。
(5)通過增加“()”可以改變各操作符之間的優(yōu)先級。下面通過例5-5來理解各個邏輯操作符的運算法則。
【例5-5】邏輯操作符的用法。
A=[348;902;537]%輸入矩陣A
A=
3
4
8
9
0
2
5
3
7
B=[441;784;517]%輸入矩陣B
B=
4
4
1
7
8
4
5
1
7
AB=A&B%對矩陣A和B求邏輯“與”
AB=
1
1
1
1
0
1
1
1
1
A_B==A|B%對矩陣A和B求邏輯“或”
AB=
1
1
1
1
1
1
1
1
1
C=~A%對矩陣B求邏輯“非”
C=
0
0
0
0
1
0
0
0
0
cc=(A>3)&(A<6)%求矩陣A中大于3小于6的元素
cc=
0
1
0
0
0
0
1
0
0
5.4.3關(guān)系與邏輯函數(shù)
除了上面的關(guān)系與邏輯操作符外,MATLAB還提供了大量的其他關(guān)系與邏輯函數(shù)。這些函數(shù)在交互運算及進(jìn)行矩陣的標(biāo)化中非常有用,可以很方便地查找或替換矩陣中滿足一定條件的部分或所有元素,如表5-8所示。表5-8關(guān)系與邏輯函數(shù)下面詳細(xì)闡述一些常用函數(shù)的用法。
1)any函數(shù)這是一個判斷向量中元素是否有非0的函數(shù)。在矩陣處理時,有時要判斷矩陣中的元素有無0值。在對矩陣進(jìn)行數(shù)組除時,就要判斷作除數(shù)的矩陣是否有0元素。其調(diào)用格式為:
·any(A):若A是向量,且A向量中至少有一個元素為非0數(shù),則any(A)將返回邏輯“真”,即為1,否則為0。若A為矩陣,函數(shù)any(A)按向量的列判斷,且矩陣A的某列中存在某個元素為非0數(shù),則返回當(dāng)前列的結(jié)果為1。若A是多維矩陣,則any(A)將第一個不是單維的維作為向量,按向量的運算規(guī)則進(jìn)行判斷。
·any(A,dim): 指定第dim維作為向量進(jìn)行計算。如any(A,1)就是按向量A第一維進(jìn)行計算。
【例5-6】函數(shù)any的用法。
A=[348;902;537]%輸入矩陣A
A=
3
4
8
9
0
2
5
3
7
any(A)%邏輯運算
ans=
1
1
1
any(A,2) %對第二維進(jìn)行邏輯運算
ans=
1
1
1
2)all函數(shù)
·all(A):若A是向量,如果A向量中每個元素都是非0數(shù),則all(A)將返回邏輯“真”,即為1;如果至少有一個元素為0,則返回值為0。若A為矩陣,函數(shù)all(A)按向量的列判斷,如果矩陣A的某列中所有元素都為非0數(shù),則返回當(dāng)前列的結(jié)果為1。若A是多維矩陣,則all(A)將第一個不是單維的維作為向量,接向量的運算規(guī)則進(jìn)行判斷。
·all(A,dim):指定第dim維作為向量進(jìn)行計算。如all(A,1)就是按向量A第一維進(jìn)行計算。下面舉例說明函數(shù)all的用法。
【例5-7】判斷矩陣A=[348;902;537]的所有元素是否都大于或等于1。
A=[348;902;537]%輸入矩陣A
A=
3
4
8
9
0
2
5
3
7
all(all(A>=l))%用函數(shù)all判斷
ans=
0
A>=1%顯示矩陣A大于等于1的值
ans=
1
1
1
1
1
1
1
1
1
all(A>=l)%用一次函數(shù)all進(jìn)行判斷
ans=
1
0
1從本例可以看出,函數(shù)的某些查找或判斷功能非常強大,要仔細(xì)體會all函數(shù)的用法。除了這些關(guān)系與邏輯函數(shù)外,MATLAB還提供了大量的判斷函數(shù),以測試特殊值或條件的存在,返回邏輯值。判斷函數(shù)及其功能如表5-9所示。表5-9判斷函數(shù)這些命令在MATLAB程序設(shè)計和直接交互運算中非常有用。用戶可以從指南或聯(lián)機幫助中找到具體的調(diào)用格式。本書只將函數(shù)find作為例子進(jìn)行較為詳細(xì)地介紹,其余不再作具體解釋。函數(shù)find是找出向量或矩陣中非0元素的位置標(biāo)識。在許多情況下,都需對矩陣或向量中某一特定條件下的元素位置進(jìn)行定位,例如將某一矩陣中為0的元素位置取1。如果這個矩陣的元素非常多,則手工修改非常麻煩,而靈活運用find函數(shù)和各種邏輯關(guān)系運算就可以實現(xiàn)絕大多數(shù)條件的元素定位。下面是其調(diào)用格式:
·I=find(x):返回向量或矩陣x中的所有非0元素的位置標(biāo)識組成的向量,如果沒有非0元素,則返回空值。
·[I,J]=find(x):返回矩陣x的非0元素行和列的標(biāo)識。其中I是行標(biāo)識,J是列標(biāo)識。此函數(shù)經(jīng)常用在稀疏矩陣中。
·[I,J,V]=find(x):返回矩陣x中的非0元素行和列的標(biāo)識。其中I是行標(biāo)識,J是列標(biāo)識,同時,將相應(yīng)的非0元素的值放入列向量V中。即I和J的值與[I,J]=find(x)相同,只是增加了非0元素的值這一項。下面舉例來說明該函數(shù)的用法。
【例5-8】函數(shù)find的用法。
A=[048;902;537]%輸入矩陣A
A=
048
902
537
find(A)%查找矩陣A中的非零元素位置
ans=%結(jié)果顯示,非零元素的標(biāo)識是按列進(jìn)行的,即從第2列開始,數(shù)完該列后再數(shù)第3列,依次數(shù)下去
2
3
4
6
7
8
9[I,J]=find(A)%查找矩陣A中非零元素位置,并列出其具體位置1=
2
3
1
3
1
2
3
J=
1
1
2
2
3
3
3[I,J,V]=find(A)%標(biāo)出矩陣A中非零數(shù)值的位置,并寫出非零數(shù)值
I=[HJ*5/8]
2
3
1
3
1
2
3
J=
1
1
2
2
3
3
3
V=%指出非零元素的數(shù)值
9
5
4
3
8
2
7
find(A<3)%找出矩陣A中小于3的元素的位置
ans=
1
5
8
A(find(A==0))=-5%將矩陣A中等于0的元素替換為-5
A=
-5
4
8
9
-5
2
5
3
7
C=[304;075;123]%輸入矩陣C
C=
3
0
4
0
7
5
1
2
3
A(find(A==-5))=C(find(A==-5))%將矩陣A中等于-5的元素的值替換成矩陣C中相應(yīng)位置上的元素,即部分矩陣元素值的替換
A=
3
4
8
9
7
2
5
3
7
A(find(A==9))=[]%將矩陣A中等于9的元素刪除
A=
3
5
4
7
3
8
2
75.5MATLAB程序結(jié)構(gòu)
計算機編程語言允許程序員根據(jù)某些結(jié)構(gòu)來控制程序的執(zhí)行次序。MATLAB和大多數(shù)計算機語言一樣,提供了設(shè)計程序所必須的程序結(jié)構(gòu),即順序結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和分支結(jié)構(gòu)。在MATLAB中,循環(huán)結(jié)構(gòu)由while和for語句實現(xiàn),分支結(jié)構(gòu)由if語句實現(xiàn)。5.5.1順序結(jié)構(gòu)
順序結(jié)構(gòu)就是依照順序執(zhí)行程序的各條語句。語句在程序文件中的位置反映了程序的執(zhí)行順序。MATLAB的語句是由表達(dá)式構(gòu)成的。若程序是命令文件,則在程序運行完后,中間變量都予以保留;若程序是函數(shù)文件,則在程序運行完后,中間變量將被全部刪除。前面幾章所舉的例子大多是順序結(jié)構(gòu),這里不再舉例詳述。5.5.2循環(huán)結(jié)構(gòu)
循環(huán)是計算機解決問題的主要手段,在很多實際問題中會遇到許多有規(guī)律的重復(fù)運算和對某些語句的重復(fù)執(zhí)行。在循環(huán)結(jié)構(gòu)中,被重復(fù)執(zhí)行的那一組語句就是循環(huán)體。它每循環(huán)一次,都需要作出是繼續(xù)重復(fù)或是停止的判斷,這個判斷所依據(jù)的條件就是所謂的循環(huán)條件。
MATLAB語言提供了兩種循環(huán)方式:for-end循環(huán)和while-end循環(huán)。
1.for-end循環(huán)
for循環(huán)將循環(huán)體中的語句以固定和預(yù)定的次數(shù)進(jìn)行重復(fù)執(zhí)行。循環(huán)的次數(shù)一般情況下是已知的,除非用其他語句將循環(huán)提前結(jié)束。for循環(huán)的語法格式為
forx=array
(commands)
end
for指令后面的變量x稱為循環(huán)變量,commands為循環(huán)體。for指令后面的數(shù)組array列數(shù)決定了循環(huán)體被重復(fù)執(zhí)行的次數(shù)。也就是說,循環(huán)變量依次取數(shù)組的各列,對于每個變量值,循環(huán)體被執(zhí)行一次。數(shù)組array可以是整數(shù)、小數(shù),還可以是負(fù)數(shù),也可以是字符串、字符串矩陣或字符串組成的單元陣。不論它們?nèi)『沃?,都必須滿足工程數(shù)組(向量)的條件,x將窮盡此數(shù)組的取值,但作為取值的單元是有所不同的,如字符串是以每個字符作為取值單元,單元陣是以單元陣的元素作為取值單元,數(shù)值矩陣是以列向量作為取值單元等。
【例5-9】一個簡單的for循環(huán)示例。
forI=1:10
A(I)=1/(I+l)
end
A=
Columns1through7′
0.50000.33330.25000.20000.16670.14290.1250
Columns8through10
0.11110.100000.0909說明:
·for循環(huán)不會因在循環(huán)體內(nèi)對循環(huán)變量重新賦值而終止?!ふZ句1:10是一個標(biāo)準(zhǔn)的MATLAB數(shù)組創(chuàng)建語句。在for后面的表達(dá)式中的數(shù)組可以是任何合法的MATLAB數(shù)組。
·for循環(huán)結(jié)構(gòu)可按需要嵌套使用。為了得到高效代碼,應(yīng)盡量提高代碼的向量化程度,避免使用循環(huán)結(jié)構(gòu)。換而言之,如有一個等效的數(shù)組方法來解給定的問題時,應(yīng)盡量避免使用for循環(huán)。如例5-9,可以用下面的語句重寫:
i=1:10
A(i)=1./(i+1)
A=
Columns1through7
0.50000.33330.25000.20000.16670.14290.1250
Columns8through10
0.11110.100000.0909兩種方法得出同樣的結(jié)果,但后者執(zhí)行的速度更快、更直觀,輸入較少。技巧:為了得到最快的運算速度,在循環(huán)指令之前應(yīng)盡量對數(shù)組進(jìn)行預(yù)定義。在例5-9中的第一種情況下,for循環(huán)體內(nèi)每執(zhí)行一次命令,變量i增加1,這就使MATLAB每通過一次循環(huán)就要花費時間,對變量i就要分配更多的內(nèi)存空間。為此,例5-9中的程序可改為:
i=1:10
A=zeros(1,10);
fori=1:10
A(i)=1./(i+1)
end此時程序只需對A(i)進(jìn)行改變。
2.while-end循環(huán)
while循環(huán)是將循環(huán)體中的語句循環(huán)執(zhí)行不定次數(shù)。其語法形式為:
whileexpression
statements
end
在while循環(huán)結(jié)構(gòu)中,statements是循環(huán)體。當(dāng)MATLAB碰到while指令時,首先檢測表達(dá)式expression的值,如果其值為邏輯真(非0),則執(zhí)行循環(huán)體的內(nèi)容,執(zhí)行后再判斷expressions是否為真,若表達(dá)式的值仍為真,則循環(huán)繼續(xù)進(jìn)行;一旦表達(dá)式的值為假,就結(jié)束循環(huán)。
【例5-10】用while循環(huán)計算1~100之間整數(shù)的和。
Sum=0;
i=1;
whilei<=100
sum=sum+i;
i=i+1;
end
sum
sum=
5050說明:
·while循環(huán)和for循環(huán)的區(qū)別在于,while循環(huán)結(jié)構(gòu)的循環(huán)體被執(zhí)行的次數(shù)不確定,而for循環(huán)結(jié)構(gòu)中循環(huán)體的執(zhí)行次數(shù)確定。
·一般情況下,表達(dá)式的值都是標(biāo)量,但是,MATLAB允許它是一個數(shù)組,此時只有當(dāng)該數(shù)組所有元素均為真時,MATLAB才會執(zhí)行循環(huán)體。
·如果while指令后的表達(dá)式為空數(shù)組,則MATLAB認(rèn)為表達(dá)式值為假而不執(zhí)行循環(huán)體。5.5.3分支結(jié)構(gòu)
在計算中常常要根據(jù)不同的條件來執(zhí)行不同的語句,當(dāng)某些條件滿足時,只執(zhí)行其中的某一條或某幾條命令,在這種情況下要用到分支結(jié)構(gòu)語句。在MATLAB中提供了兩種分支語句,即if-else-end和switch-case-end語句,它們各有特點。1.if-else-end分支結(jié)構(gòu)
if-else-end指令為程序流提供了一種分支結(jié)構(gòu),它有多種形式,其中最簡單的調(diào)用形式為:
ifexpression
statements
end
if后面的expression是表達(dá)式,若邏輯表達(dá)式的值為真,則執(zhí)行該結(jié)構(gòu)中的執(zhí)行語句內(nèi)容,執(zhí)行完后繼續(xù)向下進(jìn)行;若邏輯表達(dá)式的值為假,則跳過結(jié)構(gòu)中的執(zhí)行語句繼續(xù)向下進(jìn)行。
【例5-11】折扣問題。
book=20;
number=40;
sums=0.0;
ifnumber>=30
sums=book*number*0.7;
end
sums
sums=
560
當(dāng)遇到有兩種選擇時,MATLAB將采用下面的結(jié)構(gòu):
ifexpression
statements1
else
statements2
end在此結(jié)構(gòu)中,statements1和statements2是語句1和語句2。此種調(diào)用格式的執(zhí)行方式為:如果邏輯表達(dá)式的值為“真”,則執(zhí)行語句1,跳過語句2向下執(zhí)行;如果邏輯表達(dá)式的值為“假”,則執(zhí)行語句2,然后向下繼續(xù)執(zhí)行。當(dāng)選擇項多于兩個時,MATLAB將采用下面的結(jié)構(gòu):
ifexpression1
statements1
elseifexpression2
statements2
else
statementsn
end
此種調(diào)用格式的執(zhí)行方式為:如果邏輯表達(dá)式1的值為“真”,則執(zhí)行語句1,然后結(jié)束此結(jié)構(gòu);如果為“假”,則判斷邏輯表達(dá)式2的值是否為真,如果為真,則執(zhí)行語句2,然后結(jié)束此結(jié)構(gòu);否則向下執(zhí)行邏輯表達(dá)式3……依次類推?!旅媾e一個例子來具體說明它們的用法。
【例5-12】繪出函數(shù)的圖像。其程序為:
x=-3:0.1:3;
ifx>=1
y=2*x.^2+1;
plot(x,y)′
elseif-1<x<1
y=5;.
plot(x,y)
else
y=-x.^3;
plot(x,y)
end其執(zhí)行結(jié)果如圖5-3所示。圖5-3編程繪制函數(shù)圖像
2.switch-case-end分支結(jié)構(gòu)
switch語句是多分支選擇語句,雖然在某些情況下其功能可以由if語句的多層嵌套來完成,但是會使程序變得復(fù)雜和難以修改,而用switch語句構(gòu)造多分支選擇結(jié)構(gòu)時就顯得更加簡單明了、容易理解。switch語句的一般調(diào)用格式為:
switchswitch_expr
casecase_expr
statement,...,statement
case{case_expr1,case_expr2,case_expr3,…}
statement,...,statement
otherwise,
statetment,...,statement
end…此種格式的執(zhí)行方式為:
·switch指令后面的表達(dá)式可以為任何類型,如字符串和標(biāo)量等。對于標(biāo)量,可按規(guī)則:表達(dá)式值==檢測值i;而對于字符串,MATLAB將調(diào)用函數(shù)stremp來完成比較:stremp(表達(dá)式,檢測值i)。有時表達(dá)式還可以是單元數(shù)組,此時MATLAB將把表達(dá)式的值和單元數(shù)組中的所有元素進(jìn)行比較,如果單元數(shù)組中的某個元素和表達(dá)式的值相等,則MATLAB認(rèn)為此次比較結(jié)果為真,從而執(zhí)行與該檢測值相應(yīng)的語句。
·當(dāng)遇到switch語句時,MATLAB將表達(dá)式的值依次和各個case指令后面的檢測值進(jìn)行比較,如果比較結(jié)果為真,MATLAB將執(zhí)行case后面的語塊,然后跳出該結(jié)構(gòu);如果比較結(jié)果為假,MATLAB則取下一個檢測值再比較。如果所有的結(jié)果都為假,即表達(dá)式的值與所有的檢測值都不相等,MATLAB將執(zhí)行otherwise后面的語塊。由此可見,上述結(jié)構(gòu)保證了至少有一組命令會得到執(zhí)行。
·每個case后面的檢測值可以有多個,而且類型可以不同;每個case后面的檢測值可以重復(fù),這在語法上沒有錯誤,只是在執(zhí)行時后面符合條件的case語句將被忽略,不起作用。·與if語句不同的是,各個case和otherwise語句出現(xiàn)的前后順序并不會影響程序的執(zhí)行結(jié)果。
【例5-13】查找字符串類型。其程序段為:
str=put(′pleaseinputastringofMethod′)
switchlower(str)
case(′linear′,′bilinear′}
disp(′Methodislinear′)
case′cubic′
disp(′Methodiscubic′)′
case′nearest′
disp(′Methodisnearest′)
otherwise
disp(′Unknownmethod.′)
end運行結(jié)果:
pleaseinputastringofMethod%MATLAB命令窗口顯示
′linear′%輸入字符串
str=%運行結(jié)果
linear
Methodislinear5.6程序流控制語句
在MATLAB的程序設(shè)計中,有時需要提前終止循環(huán)、跳出子程序、顯示錯誤或警告信息以及顯示批處理文件的執(zhí)行過程等,這就要用到程序流控制命令。MATLAB中提供了以下幾條流控制命令及錯誤顯示。
1)return指令通常在被調(diào)函數(shù)執(zhí)行完后,MATLAB會自動把控制轉(zhuǎn)到主函數(shù)或命令窗口,如果在被調(diào)函數(shù)中插入return指令,即可強制MATLAB結(jié)束執(zhí)行該函數(shù)并把控制轉(zhuǎn)出。
2)pause指令
pause指令可使程序運行停止,等待用戶按任意鍵繼續(xù)。該指令在程序調(diào)試及需要看中間結(jié)果時特別有用。pause指令有兩種用法:
·pause:暫停執(zhí)行程序,等待用戶按任意健繼續(xù)。
·pause(n):在繼續(xù)執(zhí)行前,暫停n秒。[HJ]
3)break指令
break指令包含最內(nèi)層while、for、if語句終止循環(huán)。通過使用break指令,可以不必等循環(huán)自然結(jié)束,而是根據(jù)循環(huán)內(nèi)部另設(shè)的某種條件是否滿足來決定是否退出循環(huán)或是否結(jié)束if
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)學(xué)-福建省龍巖市2025年高中畢業(yè)班三月教學(xué)質(zhì)量檢測(龍巖一檢)試題和答案
- 閥門拆除施工方案
- 石方靜態(tài)爆破施工方案
- 《千米的認(rèn)識》(教學(xué)設(shè)計)-2024-2025學(xué)年三年級上冊數(shù)學(xué)人教版
- 2025年中考物理模擬試卷猜題卷1(含答案)
- 醫(yī)院科室安裝監(jiān)控合同范例
- 合作租房合同范例
- 質(zhì)量控制標(biāo)準(zhǔn)提升計劃
- 人事部如何構(gòu)建企業(yè)形象計劃
- 幼兒園作業(yè)與學(xué)習(xí)反饋計劃
- 2025山東能源集團中級人才庫選拔高頻重點提升(共500題)附帶答案詳解
- 20S515 鋼筋混凝土及磚砌排水檢查井
- 關(guān)于建設(shè)吉林長白山人參產(chǎn)業(yè)園的報告
- 6人小品《沒有學(xué)習(xí)的人不傷心》臺詞完整版
- 2022新教科版科學(xué)五下全冊教案、全冊教學(xué)反思(表格式)含目錄
- 土力學(xué)-第二章-土的工程性質(zhì)及工程分類
- 小學(xué)體育《陽光運動身體好》課件
- 研究生面試復(fù)試英語+常問問題
- 數(shù)學(xué)名詞中英文對照
- 線束加工工時對照表
- 一年級古詩新唱社團計劃
評論
0/150
提交評論