第二計算機語言_第1頁
第二計算機語言_第2頁
第二計算機語言_第3頁
第二計算機語言_第4頁
第二計算機語言_第5頁
已閱讀5頁,還剩105頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第二計算機語言MATLAB

張賢明

東南大學(xué)

二。。七年七月

目錄

第一章MATLAB概述...............................................................1

第一節(jié)簡單說明...................................................................1

第二節(jié)課程教學(xué)目的及基本要求....................................................4

第三節(jié)MATLAB簡介..............................................................5

第車節(jié)MATLAB集成環(huán)境.........................................................11

第五節(jié)MATLAB常用命令.........................................................12

第二章MATLAB數(shù)值運算...........................................................15

第一節(jié)矩陣創(chuàng)建與運算............................................................15

第二節(jié)多項式運算................................................................18

第三節(jié)代數(shù)方程組求解...........................................................20

第四節(jié)數(shù)據(jù)分析與統(tǒng)計...........................................................21

第五節(jié)擬合與插值................................................................23

第三章MATLAB符號運算..........................................................26

第一節(jié)符號運算的基本操作........................................................26

第二節(jié)因式分解、展開和簡化......................................................27

第三節(jié)符號微積分................................................................28

第四節(jié)符號方程求解..............................................................31

第五節(jié)可視化數(shù)學(xué)分析界面........................................................33

第四章MATLAB計算的可視化......................................................34

第一節(jié)二維數(shù)據(jù)曲線圖............................................................34

第二節(jié)三維圖形..................................................................42

第三節(jié)圖形修飾處理..............................................................49

第四節(jié)圖像處理與動畫制作........................................................51

第五章MATLAB程序設(shè)計..........................................................54

第一節(jié)M文件及程序運算符.......................................................54

第二節(jié)程序控制結(jié)構(gòu)..............................................................55

第三節(jié)函數(shù)文件..................................................................60

第四節(jié)程序調(diào)試及常用指令........................................................62

第六章MATLAB文件操作..........................................................66

第一節(jié)文件的打開與關(guān)閉.........................................................66

第二節(jié)文件的讀寫操作............................................................66

第三節(jié)數(shù)據(jù)文件定位..............................................................69

第七章MATLAB圖形句柄..........................................................70

第一節(jié)圖形對象及其句柄.........................................................70

第二節(jié)圖形對象屬性..............................................................74

第三節(jié)圖形對象的創(chuàng)建............................................................84

第八章MATLAB圖形用戶界面設(shè)計..................................................89

第一節(jié)簡單用戶界面制作.........................................................89

1

第二節(jié)圖形用戶界面的設(shè)計原則和一般步驟............................................91

第三節(jié)菜單設(shè)計.....................................................................92

第四節(jié)用戶控件.....................................................................96

第五節(jié)圖形用戶界面設(shè)計工具........................................................101

第六節(jié)綜合練習(xí).....................................................................105

2

第一章MATLAB概述

第一節(jié)簡單說明

一、課程設(shè)置依據(jù)

名稱開設(shè)情況使用概率方面對主語言作用

第二外國語言多(日、德、法)少無(單詞,語法)

第二計算機語言少(MATLAB)多有(程序控制方式)

如:(D程序控制,相似;

MATLAB:

fori=l:1:100

C++:

for(i=l;i<=100;i++)

(2)文件操作,相同。

fp二fopen(文件名,打開方式)

fclose(fp)

fread,fwrite,fprintf,fscanf(fp,格式,輸入列表)

fclose(fp)

二、計算機語言分類

第一代計算機語言:機器語言,由0,1組成的二進(jìn)制碼;

第二代計算機語言:匯編語言,用指令來代替二進(jìn)制碼,它可以直接對計算機硬件進(jìn)行操作;

以上為低級語言,專業(yè)語言。

第三代計算機語言:算法語言,源程序可以用解釋、編譯兩種方式執(zhí)行,影響較大、使用較

普遍的有FORTRAN、ALGOL.COBOL,BASIC,LISP,SNOBOL、PL/1、Pascal.C、PROLOG.Ada、C++、

Delphi,JAVA等。其中:

FORTRAN(FORmulaTRANslation公式翻譯),適用于數(shù)值計算。

C/C++(BasicCombinedProgrammingLanguage基礎(chǔ)混合編程語言),適用于編寫系統(tǒng)軟件

(UNIX)o

BASIC(Beginner(sAll-purposeSymbolicInstructionCode初學(xué)者通用符號指令代碼),

適用于初學(xué)者。

第四代計算機語言:非過程化語言,是交互式程序設(shè)計環(huán)境,由計算機自動生成程序,提高

了軟件的生產(chǎn)效率,常用的有VC、VB、VF、MATLAB等。其中:

MATLAB(皿rixL弛oratory矩陣實驗室),是一種演算式語言,使用方便,應(yīng)用廣泛。

以上稱高級語言,大眾語言。

第五代計算機語言:人工智能語言。MATLAB適合于人的思維方式(for1=1:1:10),屬人性化

語言.

三、MATLAB主要特點

例:求?元二次方程ax2+bx+c=0的根,編寫其程序,求根公式為

_-h±y/h2-4ac

x\,2=(Qw0)°

2a

1

此方程可能有兩個實根(包括實重根),也可能有一對共軌復(fù)根,均需要按照判別式從-4公

的情況來決定。

1、C程序

ftinclude<stdio.h>

#include<math.h>

voidsolv(floata,floatb,floatc)

(

doubledisc,twoa,terml,term2;

if(a==0.0)

if(b二二0.0)

printf(z,Noanswerduetoinputerror!\nz,);

else

printf("Thesinglerootis:%f\n,z,-c/b);

else

(

disc=b*b-4*a*c;

twoa=2*a;

terml=-b/twoa;

term2=sqrt(fabs(disc))/twoa;

if(disc<0.0)

printf(z,Complexroot:\nrealpart=%f,imagepart=%f\n,\terml,term2);

else

printf("realroot:\nrootl=%f,root2=%f\n,,,terml+term2,terml-term2);

)

)

voidmainO

(

floata,b,c;

printf(z,Inputa,b,c:〃);

scanfC%f%f%f,z,&a,&b,&c);

solv(a,b,c);

)(30行)

2、VB程序

PrivateSubForm_Activate()

Dima#,b#,c#,d#,xl#,x2#

a=Val(InputBox(〃a=〃,〃數(shù)據(jù)輸入框〃,1))

b二Val(InputBox(〃b=〃,〃數(shù)據(jù)輸入框〃,2))

c=Val(InputBox(〃c=〃,〃數(shù)據(jù)輸入框〃,1))

Ifa=0Then

Ifb=0Then

Ifc=0ThenPrint〃解得:x有無窮解〃ElsePrint〃解得:x無解〃

Else

Print〃解得:x=〃&-c/b

EndIf

Else

2

d=b*b-4*a*c

Ifd>0Then

xl=(-b+Sqr(d))/(2*a)

x2=(-b-Sqr(d))/(2*a)

Print〃解得:xl=〃&xl,

Print〃x2=〃&x2

Else

xl=-b/(2*a)

Ifd=0ThenPrint〃解得:x=〃&xl

Ifd<0Then

x2=Sqr(-d)/(2*a)

Print〃解得:xl=〃&xl&〃+〃&x2&〃i〃

Print〃x2=〃&xl&〃-〃&x2&〃i〃

EndIf

EndIf

EndIf

EndSub(29行)

3、FORTRAN程序

4READ(5,5)A,B,C

5FORMAT(3F4.1)

IF(A)15,35,15

15XlR=-B/(2.0*A)

D=B*B-4.0*A*C

IF(D)10,20,30

10X2R=X1R

X1I=SQRT(-D)A2.O*A)

X2I=-X1I

GOTO34

20X2R=X1

X1I=O.0

X2I=0.0

GOTO34

X2R=X1R-SQRT(D)/⑵0*A)

X1R=XIR+SQRT(D)/(2.O*A)

Xl1=0.0

X2I=0.0

34WRITE(6,6)A,B,C,X1R,XII,X2R,X2IXO=X

6FORMAT(IX,7(F7.4,3X))

GOTO4

STOPo

END(23行)

4、MATLAB程序

?P=[l,2,1]

P=

121

>>r=roots(p)

3

r=

-1

-1(2行)

?p=[1,2,3];r=roots(p)

r=

-1.0000+1.4142i

-1.0000-1.4142i(l行2句)

?r=roots([6,-5,1])

0.5000

0.3333(1行1句)

所有計算問題函數(shù)化,工具箱化,屬演算式語言,使用簡單。

第二節(jié)課程教學(xué)目的及基本要求

一、教學(xué)目的

本課程為全校性公共任選課,完全不必具備其它計算機語言的基礎(chǔ)和專業(yè)知識,各年級各專

業(yè)的同學(xué)都可選修。通過本課程學(xué)習(xí),使學(xué)生了解MATLAB,能夠熟練掌握數(shù)學(xué)(矩陣)運算,簡

單編程,簡單的數(shù)據(jù)處理及基本圖形繪制,幫助學(xué)生解決學(xué)習(xí)或工作中的數(shù)值計算、數(shù)據(jù)處理、

圖形繪制等問題,并達(dá)到計算機語言素養(yǎng)的訓(xùn)練,為C++高級編程服務(wù)。

二、學(xué)習(xí)內(nèi)容

(1)MATLAB簡介;

(2)MATLAB的數(shù)值運算;

(3)MATLAB的符號運算;

(4)MATLAB計算的可視化;

(5)MATLAB文件操作;

(6)MATLAB程序設(shè)計;

(7)MATLAB圖形句柄;

(8)MATLAB圖形用戶界面設(shè)計。

三、考核方式

(1)綜合作業(yè)60+測驗40;

(2)綜合作業(yè)需完成自制用戶介面設(shè)計,并結(jié)合實例實現(xiàn)簡單分析或計算功能,并把計算結(jié)果

圖形化,要有個性化圖形設(shè)置;

4

>MATLAB6.5輔助神經(jīng)網(wǎng)絡(luò)分析與設(shè)計系統(tǒng)目回區(qū)|

文件操作輸入輸出文件格式輔助功能

動量法和學(xué)習(xí)速率自適應(yīng)調(diào)整方法訓(xùn)練與學(xué)習(xí)

輸入文件位置及名稱e\bp\aa.txt

輸出文件位置及名稱e:\bp\cc.txt

待求文件位置及名稱

隱含層神經(jīng)單元個數(shù)15

顯示間隔次數(shù)25

最大循環(huán)次數(shù)1000

目標(biāo)誤差0.02

設(shè)置學(xué)習(xí)速率0.01

學(xué)習(xí)速率增加的比率1.05

學(xué)習(xí)速率減小的比率0.7

設(shè)定動量常數(shù)09

設(shè)定展大誤差比率1.04

BP神經(jīng)網(wǎng)絡(luò)分析與設(shè)計系統(tǒng)

(3)最后一次課安排測驗,完成40分填空題,為MATLAB軟件中特別實用的內(nèi)容和函數(shù),主要

為己知函數(shù)寫出功能或根據(jù)要求寫出相應(yīng)函數(shù)。

四、教學(xué)參考書

1、掌握和精通MATLAB

1997年7月第一版;純印刷版發(fā)行;以4.2c為軟件基礎(chǔ);除符號計算外,其余內(nèi)容迄今適

用。(全書52萬字)

2、精通MATLAB5.3

2000年8月第一版;印刷、電子版配套發(fā)行;以5.3為軟件基礎(chǔ);內(nèi)容詳盡深入,迄今全部

適用。(全書90萬字)

3、精通MATLAB6.5

2002年12月第一版;2002全新版,詳述MATLAB6.5精華,由印刷版和電子版融合而成,是本

課程的教學(xué)用書。(全書103萬多字)

第三節(jié)MATLAB簡介

一、課程介紹

5

C++支持面向?qū)ο蟮某绦蛟O(shè)計方法,特別適合于中型和大型的軟件開發(fā)項目(Windows),從開

發(fā)時間、費用到軟件的重用性、可擴充性、可維護(hù)性和可靠性等方面,C++均具有很大的優(yōu)越性。

但C++是編譯類語言,使用過程不方便,對一些簡單問題,解釋類語言比較靈活,可以動態(tài)地調(diào)

整(可不使用程序文件)、修改應(yīng)用程序。MATLAB是一種解釋類語言,它將一個優(yōu)秀軟件的易用

性與可靠性、通用性與專業(yè)性、一般目的的應(yīng)用與高深的科學(xué)技術(shù)應(yīng)用有機的相結(jié)合,是一種直

譯式的高級語言,比其它程序設(shè)計語言容易。計算機語言正向“智能化”方向發(fā)展,MATLAB被稱

為第四代編程語言,滿足“智能化”的方向。MATLAB已經(jīng)不僅僅是一個“矩陣實驗室”了,它集

科學(xué)計算、圖象處理、多媒體處理于一身,并提供了豐富的Windows圖形界面設(shè)計方法。它以超

群的風(fēng)格與性能風(fēng)靡全世界,成功地應(yīng)用于各工程學(xué)科的研究領(lǐng)域。近年來,MATLAB語言已在我

國推廣使用,現(xiàn)在已應(yīng)用于各學(xué)科研究部門和許多高等院校。

二、MATLAB由來

MATLAB語言是由美國的CleverMoler博士于1980年開發(fā)的,設(shè)計者的初衷是為解決“線性

代數(shù)”課程的矩陣運算問題,取名MATLAB即蟠rixLaboratory矩陣實驗室的意思。

MATLAB是一種演算式語言。MATLAB的基本數(shù)據(jù)單元是既不需要指定維數(shù),也不需要說明數(shù)據(jù)

類型的矩陣(向量和標(biāo)量為矩陣的特例),而且數(shù)學(xué)表達(dá)式和運算規(guī)則與通常的習(xí)慣相同。因此

MATLAB語言編程簡單,使用方便。

三、MATLAB的應(yīng)用領(lǐng)域

(1)工業(yè)研究與開發(fā);

(2)數(shù)學(xué)教學(xué),特別是線性代數(shù);

(3)數(shù)值分析和科學(xué)計算方面的教學(xué)與研究;

(4)電子學(xué)、控制理論和物理學(xué)等工程和科學(xué)學(xué)科方面的教學(xué)與研究;

(5)經(jīng)濟(jì)學(xué)、化學(xué)和生物學(xué)等計算問題的所有其他領(lǐng)域中的教學(xué)與研究。

四、初識MATLAB

1、矩陣乘積問題

考慮兩個矩陣A和B的乘積問題,在C語言中要實現(xiàn)兩個矩陣的乘積并不僅僅是一組雙重循

環(huán)的問題。雙重循環(huán)當(dāng)然是矩陣乘積所必需的,除此之外要考慮的問題很多。例如:A和B有一

個是復(fù)數(shù)矩陣怎么考慮;其中一個是復(fù)數(shù)矩陣時怎么考慮;全部是實系數(shù)矩陣時又怎樣處理,這

樣就要在一個程序中有4個分支,分別考慮這4種情況。然而還得判斷這兩個矩陣是否可乘???/p>

慮兩個矩陣是否可乘也并不僅僅是判斷A的列數(shù)是否等于B的行數(shù)這么簡單。其中一個若為標(biāo)量,

則它們可以無條件相乘。其中有標(biāo)量時又得考慮實數(shù)與復(fù)數(shù)問題等。所以說,沒有幾十分種的時

間,用C語言并不可能編寫出考慮各種情況的子程序。有了MATLAB這樣的工具,A和B矩陣乘積

用A*B這樣簡單的算式就行了。

例:

?A=magic(3)

A=

816

357

492

?A*A'

ans=

1017153

718371

5371101

?A*A

6

ans二

916767

679167

676791

MATLAB提供了豐富的矩陣運算處理功能,是基于矩陣運算的處理工具。

又例如C=A+B,A,B,C都是矩陣,是矩陣的加運算。

即使一個常數(shù),Y=5,MATLAB也看做是一個1x1的矩陣。

2、求解線性方程組(對于線性系統(tǒng)有Ax二b)

(1)3XI+X2-X3=3.6

XI+2XZ+4X3=2.1

-XI+4XZ+5X3=-l.4

?A=[31-1;124;-l45];b=[3.6;2.

?x=A\b

x=

1.4818

-0.4606

0.3848

(2)

?A=[2,-3,1;8,3,2;45,1,-9];b=[4;2;17];

?x=inv(A)*b

0.4784

-0.8793

0.4054

3、繪圖

(1)繪制正弦曲線和余弦曲線。

?x=[0:0.5:360]*pi/180;

>>plot(x,sin(x),x,cos(x));

>>legend(,sin','con,)

(2)考慮一個二元函數(shù)

35x2y2(x+)2y2

Z=/(x,y)=3(l-x)2er2/2-(y+i)2-io(|-x-y)e---^e-'-

如何用三維圖形的方式表現(xiàn)出這個曲面?

用C這類語言,繪制三維圖形是一個難點,且從一個機器移植程序到另一個機器,大部分時

7

間花在調(diào)試程序上。但使用MATLAB這類高級語言,完成這樣的工作就是幾個直觀語句的事。且得

出圖形美觀準(zhǔn)確、可以將語句不變化地移植到另外的機器匕得出完全一致的結(jié)果,如下所示。

>>[x,y]=meshgrid(-3:1/8:3)

?z=3.*(l-x).2.*exp(-(x.2)./2-(y+l).2)-10.*(x/5-x.3-y.5).*exp(-x."2-y.2)-1

/3.*exp(-(x+l).2-y.2)

?Surf(x,y,z)

?Shadinginterp

>>Colorbar

(3)豐富的繪圖功能與計算結(jié)果的可視化:

具有高層繪圖功能一兩維、三維繪圖;具有底層繪圖功能一句柄繪圖;使用plot函數(shù)可隨時

將計算結(jié)果可視化。

4、數(shù)學(xué)分析

(1)求方程3x,+7x3+9x2-23=0的全部根。

?p=[3,7,9,0,-23L%建立多項式系數(shù)向量

?x=roots(p)/求根

X=

-1.8857

-0.7604+1.7916i

-0.7604-1.7916i

1.0732

i

(2)求積分Jxlog(l+x)dxo

o

?quad(,x.*log(l+x)',0,1)

0.2500

2]

(3)求積分--------dx.

{X3-2X-5

?F=inline('1./(x.-3-2.*x-5),);

?Q=quad(F,0,2)

Q=

-0.4605

用于解代數(shù)方程、微積分、復(fù)合導(dǎo)數(shù)、積分、二重積分、有理函數(shù)、微分方程、泰樂級數(shù)展

開、尋優(yōu)等等,可求得解析符號解。

5、圖形化程序編制功能

8

動態(tài)系統(tǒng)進(jìn)行建模、仿真和分析的軟件包,用結(jié)構(gòu)圖編程,而不用程序編程,只需拖幾個方

塊、連幾條線,即可實現(xiàn)編程功能。以下列出部分分工具箱名稱:

MATLAB主工具箱

符號數(shù)學(xué)工具箱

SIMULINK仿真工具箱

控制系統(tǒng)工具箱

信號處理工具箱

圖象處理工具箱

通訊工具箱

系統(tǒng)辨識工具箱

神經(jīng)元網(wǎng)絡(luò)工具箱

金融工具箱

例:

在MATLAB中有許多用于不同應(yīng)用領(lǐng)域的工具箱。這里,作為一個例子給出PDE工具箱,這個

工具箱通過使用有限元方法(theFiniteElementMethod)解橢圓方程、拋物線方程和雙曲線方程。

區(qū)域要分成大量三角形子區(qū)域,對每個三角形,其解由一個簡單函數(shù)估計。所用的三角形越多,

其偏差就越小。

6、文件操作

(1)與DOS命令一致。

cd—可改變當(dāng)前工作目錄

cd_—顯示當(dāng)前子目錄

cdc:\matlab\toolbox

cd_..一退出當(dāng)前子目錄到上一級目錄

cd_\一回到根目錄

(2)m文件執(zhí)行方式與DOS命令一致。

examl.m文件執(zhí)行examl即可。

>>examl

Q=

-0.4605

9

五、聯(lián)機幫助

help功能提供MATLAB大部分主題的在線幫助信息。

help顯示help主題一覽表。

helpplotxyz顯示有關(guān)三維做圖指令幫助信息。

help[顯示特殊字符與符號幫助信息。

helphelp顯示help的幫助信息。

例:

?helpplot

PLOTLinearplot.

PLOT(X,Y)plotsvectorYversusvectorX.IfXorYisamatrix,thenthevectoris

plottedversustherowsorcolumnsofthematrix,whicheverlineup.IfXisascalarand

Yisavector,length(Y)disconnectedpointsareplottedo

PLOT(Y)plotsthecolumnsofYversustheirindex.IfYiscomplex,PLOT(Y)is

equivalenttoPLOT(real(Y),imag(Y)).InallotherusesofPLOT,theimaginarypartis

ignored.Variouslinetypes,plotsymbolsandcolorsmaybeobtainedwith。

PLOT(X,Y,S)whereSisacharacterstringmadefromoneelement

fromanyorallthefollowing3columns:

bblue.point-solid

ggreenocircle:dotted

rredxx-markdashdot

ccyan+plus一dashed

mmagenta*star

yyellowssquare

kblackddiamond

Vtriangle(down)

ctriangle(up)

<triangle(left)

>triangle(right)

ppentagram

hhexagram

Forexample,PLOT(X,Y,'r+:')plotsareddottedlinewithaplusateachdatapoint;

PLOT(X,Y,'bs')plotsbluesquareateachdatapointbutdoesnotdrawanyline.

PLOT(XI,Yl,SI,X2,Y2,S2,X3,Y3,S3,...)combinestheplotsdefinedbythe(X,Y,S)

triples,wheretheX'sandY'sarevectorsormatricesandtheS'sarestrings.

Forexample,PLOT(X,Y,'y-',X,Y,'go')plotsthedatatwice,withasolidyellowline

interpolatinggreencirclesatthedatapoints.

ThePLOTcommand,ifnocolorisspecified,makesautomaticuseofthecolorsspecified

bytheaxesColorOrderproperty.ThedefaultColorOrderislistedinthetableabovefor

colorsystemswherethedefaultisblueforoneline,andformultiplelines,tocycle

throughthefirstsixcolorsinthetable.Formonochromesystems,PLOTcyclesoverthe

axesLineStyleOrderproperty.

PLOTreturnsacolumnvectorofhandlestoLINEobjects,onehandleperline.

TheX,Ypairs,orX,Y,Striples,canbefollowedbyparameter/valuepairstospecify

additionalpropertiesofthelines.

SeealsoSEMILOGX,SEMILOGY,LOGLOG,PLOTYY,GRID,CLF,CLC,TITLE,XLABEL,YLABEL,

AXIS,AXES,HOLD,COLORDEF,LEGEND,SUBPLOT,STEM.

第四節(jié)MATLAB集成環(huán)境

啟動MATLAB后,將進(jìn)入MATLAB6.5集成環(huán)境。MATLAB6.5集成環(huán)境包括MATLAB主窗口、

命令窗口(CommandWindow)、工作空間窗口(Workspace)、命令歷史窗口(CommandHistory),當(dāng)

前目錄窗口(CurrentDirectory)和啟動平臺窗口(LaunchPad),

1、菜單欄

在MATLAB6.5主窗口的菜單欄,共包含F(xiàn)ile、Edit、View、Web、Window和Help6個菜單

項。

2、工具欄

MATLAB6.5主窗口的工具欄共提供了10個命令按鈕。這些命令按鈕均有對應(yīng)的菜單命令,

但比菜單命令使用起來更快捷、方便。

3、命令窗口

命令窗口是MATLAB的主要交互窗口,用于輸入命令并顯示除圖形以外的所有執(zhí)行結(jié)果。

MATLAB命令窗口中的“>>”為命令提示符,表示MATLAB正在處于準(zhǔn)備狀態(tài)。在命令提示符后鍵

入命令并按下回車鍵后,MATLAB就會解釋執(zhí)行所輸入的命令,并在命令后面給出計算結(jié)果。

一般來說,一個命令行輸入一條命令,命令行以回車結(jié)束。但一個命令行也可以輸入若干條

命令,各命令之間以逗號分隔,若前一命令后帶有分號,則逗號可以省略。

如果一個命令行很長,一個物理行之內(nèi)寫不下,可以在第一個物理行之后加上3個小黑點并

按下回車鍵,然后接著下一個物理行繼續(xù)寫命令的其他部分。3個小黑點稱為續(xù)行符,即把下面

的物理行看作該行的邏輯繼續(xù)。

在MATLAB里,有很多的控制鍵和方向鍵可用于命令行的編輯。

4、工作空間窗口

工作空間是MATLAB用于存儲各種變量和結(jié)果的內(nèi)存空間。在該窗口中顯示工作空間中所有變

量的名稱、大小、字節(jié)數(shù)和變量類型說明,可對變量進(jìn)行觀察、編輯、保存和刪除。

5、當(dāng)前目錄窗口和搜索路徑

當(dāng)前目錄是指MATLAB運行文件時的工作目錄,只有在當(dāng)前目錄或搜索路徑下的文件、函數(shù)可

以被運行或調(diào)用。

在當(dāng)前目錄窗口中可以顯示或改變當(dāng)前目錄,還可以顯示當(dāng)前目錄下的文件并提供搜索功能。

將用戶目錄設(shè)置成當(dāng)前目錄也可使用cd命令。例如,將用戶目錄c:\mydir設(shè)置為當(dāng)前目錄,

可在命令窗口輸入命令:

?cdc:\mydir

6、命令歷史記錄窗口

11

在默認(rèn)設(shè)置下,歷史記錄窗口中會自動保留自安裝起所有用過的命令的歷史記錄,并且還標(biāo)

明了使用時間,從而方便用戶查詢。而且,通過雙擊命令可進(jìn)行歷史命令的再運行。如果要清除

這些歷史記錄,可以選擇Edit菜單中的ClearCommandHistory命令。

7、啟動Start按鈕

MATLAB6.5主窗口左下角還有一個Start按鈕,單擊該按鈕會彈出一個菜單,選擇其中的命

令可以執(zhí)行MATLAB產(chǎn)品的各種工具,并且可以查閱MATLAB包含的各種資源。

8、演示系統(tǒng)

在幫助窗口中選擇演示系統(tǒng)(Demos)選項卡,然后在其中選擇相應(yīng)的演示模塊,或者在命令窗

口輸入Demos,或者選擇主窗口Help菜單中的Demos子菜單,打開演示系統(tǒng)。

第五節(jié)MATLAB常用命令

1、addpathc:\matlab\work一添加工作路徑。

2、cdc:\mydir一更改工作路徑。

3、path一顯示當(dāng)前工作路徑。

4、doc—顯示幫助信息,如下圖所示。

5、sin

SIN(X)isthesineoftheelementsofX.

6、what

M-filesinthecurrentdirectory

7、clear

CLEARClearvariablesandfunctionsfrommemory.

CLEARALLremovesallvariablesfromtheworkspace.

CLEARVARIABLESdoesthesamething.

8^length

LENGTHLengthofvector.

LENGTH(X)returnsthelengthofvectorX.

9、load

LOADLoadworkspacevariablesfromdisk.

LOADFILENAMEretrievesallvariablesfromafilegivenafullpathnameoraMATLABPATH

relativepartialpathname(seePARTIALPATII).IfFILENAMEhasnoextensionLOADlooksfor

12

FILENAMEandFILENAME,matandtreatsitasabinary"MAT-file".IfFILENAMEhasan

extensionotherthan.mat,itistreatedasASCII.

10>mlock

MLOCKPreventM-filefrombeingcleared.MLOCKlocksthecurrentlyrunning\f-filein

memorysothatsubsequentCLEARcommandsdonotremoveit.

UsethecommandMUNLOCKorMUNLOCK(FUN)toreturntheM-filetoitsnormalCLEAR-able

state.

11、who

WHOListcurrentvariables.

12、whos

WHOSListcurrentvariables,longform.

13>format

FORMATSetoutputformat.

AllcomputationsinMATLABaredoneindoubleprecision.

FORMATmaybeusedtoswitchbetweendifferentoutputdisplayformatsasfollows:

FORMATDefault.SameasSHORT.

FORMATSHORTScaledfixedpointformatwith5digits.

FORMATLONGScaledfixedpointformatwith15digits.

FORMATSHORTEFloatingpointformatwith5digits.

FORMATLONGEFloatingpointformatwith15digits.

FORMATSHORTGBestoffixedorfloatingpointformatwith5digits.

FORMATLONGGBestoffixedorfloatingpointformatwith15digits.

FORMATHEXHexadecimalformat.

FORMAT+Thesymbols+,-andblankareprintedforpositive,negativeandzero

elements.Imaginarypartsareignored.

FORMATBANKFixedformatfordollarsandcents.

FORMATRATApproximationbyratioofsmallintegers.

14、delete

DELETEDeletefileorgraphicsobject.

DELETEfile_namedeletesthenamedfilefromdisk.Wildcardsmaybeused.Forexample,

DELETE*.pdeletesallP-filesfromthecurrentdirectory.

15>dir

DIRListdirectory.

DIRdirectory_nameliststhefilesinadirectory.Pathnamesandwildcardsmaybe

used.Forexample,DIR*.mlistsalltheM-filesinthecurrentdirectory.

16>hold

HOLDHoldcurrentgraph.

HOLDONholdsthecurrentplotandallaxispropertiessothatsubsequentgraphing

commandsaddtotheexistinggraph.

HOLDOFFreturnstothedefaultmodewherebyPLOTcommandserasethepreviousplots

andresetallaxispropertiesbeforedrawingnewplots.

17>1inspace

LINSPACELinearlyspacedvector.

LINSPACE(X1,X2)generatesarowvectorof100linearlyequallyspacedpointsbetween

XIandX2.

LINSPACE(XI,X2,N)generatesNpointsbetweenXIandX2.ForN<2,LINSPACEreturns

13

X2.

18>save

SAVESaveworkspacevariablestodisk.

SAVEFILENAMEsavesallworkspacevariablestothebinary"MAT-file”

namedFILENAME,mat.ThedatamayberetrievedwithLOAD.IfFILENAME

hasnoextension,.matisassumed.

SAVEFILENAMEXsavesonlyX.

SAVEFILENAMEXYZsavesX,Y,andZ.Thewildcard'canbeusedto

saveonlythosevariablesthatmatchapattern.

ASCIIOptions:

SAVE...-ASCIIuses8-digitASCIIforminsteadofbinaryregardless

offileextension.

SAVE...-ASCII-DOUBLEuses16-digitASCIIform.

SAVE...-ASCII-TABSdelimitswithtabs.

SAVE...-ASCII-DOUBLE-TABS16-digit,tabdelimited.

MATOptions:

SAVE...-MATsavesinMATformatregardlessofextension.

SAVE...-V4savesaMAT-filethatMATLAB4canLOAD.

SAVE...-APPENDaddsthevariablestoanexistingfile(MAT-fileonly).

14

第二章MATLAB數(shù)值運算

第一節(jié)矩陣創(chuàng)建與運算

一、創(chuàng)建矩陣的方法

1、直接輸入法

?a=[l23;456]

a=

123

456

規(guī)則:

(1)矩陣元素必須用[]括住;

(2)矩陣元素必須用逗號或空格分隔;

(3)在[]內(nèi)矩陣的行與行之間必須用分號分隔。

2、矩陣元素

矩陣元素可以是任何MATLAB表達(dá)式,可以是實數(shù),也可以是復(fù)數(shù),復(fù)數(shù)可用特殊函數(shù)i,

j輸入

?x=[2pi/2:sqrt(3)3+5i]

x=

2.00001.5708

1.73213.0000+5.00001

3、符號的作用

(1)逗號和分號可作為指令間的分隔符,MATLAB允許多條語句在同一行出現(xiàn);

(2)分號如果出現(xiàn)在指令后,屏幕上將不顯示結(jié)果。

4、說明

(1)只要是賦過值的變量,不管是否在屏幕上顯示過,都存儲在工作空間中,以后可隨時顯示

或調(diào)用;

(2)變量名盡可能不要重復(fù),否則會覆蓋;

(3)當(dāng)一個指令或矩陣太長時,可用???續(xù)行。

5、冒號的作用

(1)用于生成等間隔的向量,默認(rèn)間隔為1;

(2)用于選出矩陣指定行、列及元素;

?b=a(l:2,2:3)

b=

23

56

(3)使矩陣中所有元素變?yōu)橐涣小?/p>

?c=b(:)

c=

2

5

3

6

6、用MATLAB函數(shù)創(chuàng)建矩陣

15

(1)空陣[]—MATLAB允許輸入空陣,當(dāng)一項操作無結(jié)果時,返回空陣:

(2)rand一隨機矩陣;

(3)eye一單位矩陣;

(4)zeros一全部元素都為0的矩陣;

(5)ones一全部元素都為1的矩陣。

7、其它

還有伴隨矩陣、稀疏矩陣、魔方矩陣、對角矩陣、范德蒙等矩陣的創(chuàng)建,就不一一介紹了。

注意:

(1)MATLAB嚴(yán)格區(qū)分大小寫字母,因此a與A是兩個不同的變量;

(2)MATLAB函數(shù)名必須小寫。

二、矩陣的修改

1、直接修改

可用T鍵找到所要修改的矩陣,用一罐移動到要修改的矩陣元素上即可修改。

2、指令修改

可以用A(*,*)=*來修改。

例如

?a=[l20;305;789]

a=

120

305

789

?a(3,3)=0

a=

120

305

780

三、數(shù)據(jù)的保存與獲取

1、生成mat數(shù)據(jù)文件

把MATLAB工作空間中一些有用的數(shù)據(jù)長久保存下來的方法是生成mat數(shù)據(jù)文件。

?save—將工作空間中所有的變量存到matlab.mat文件中。

?savedata—將工作空間中所有的變量存到data,mat文件中。

?savedataab—將工作空間中a和b變量存到data,mat文件中。

2、調(diào)用已生成的mat文件

下次運行MATLAB時即可用load指令調(diào)用已生成的mat文件。

?load一打開matlab.mat文件。

?loaddata—打開data,mat文件。

?loaddataab一打開data,mat文件中的a,b變量。

mat文件是標(biāo)準(zhǔn)的二進(jìn)制文件,還可以ASCII碼形式保存(-ascii)。

四、矩陣運算

1、矩陣加、減(+,一)運算

規(guī)則:

(1)相加、減的兩矩陣必須有相同的行和列兩矩陣對應(yīng)元素相加減;

(2)允許參與運算的兩矩陣之一是標(biāo)量。標(biāo)量與矩陣的所有元素分別進(jìn)行加減操作。

2、矩陣乘(*)運算

16

規(guī)則:

(DA矩陣的列數(shù)必須等于B矩陣的行數(shù);

(2)標(biāo)量可與任何矩陣相乘。

?a=[l23;456;780];b=[l;2;3hc=a*b

c=

14

32

23

?d=[-l;0;2];f=pi*d

f=

-3.1416

0

6.2832

矩陣除的運算在線性代數(shù)中沒有,有矩陣逆的運算。

3、矩陣乘方—a「n,a"p,p'a

a八p—a自乘p次哥

對于P的其它值,計算將涉及特征值和特征向量,如果P是矩陣,a是標(biāo)量£p使用特征值和

特征向量自乘到P次幕;如a,p都是矩陣,a、則無意義。

?a=[l,2,3;4,5,6;7,8,9];丁2

ans=

303642

668196

102126150

4、矩陣的其它運算

(1)inv一矩陣求逆;

(2)det-行列式的值;

(3)eig—矩陣的特征值;

(4)diag—對角矩陣;

(5)'-矩陣轉(zhuǎn)置;

(6)sqrt一矩陣開方;

5、矩陣的一些特殊操作

(1)矩陣的變維

?a=[l:12];b=reshape(a,3,4);c=zeros(3,4);c(:)=a(:)

c=

14710

25811

36912

⑵矩陣的變向

rot90:旋轉(zhuǎn);fliplr:上翻;flipud:下翻。

(3)矩陣的抽取

diag:抽取主對角線;

tril:抽取主下三角;

triu:抽取主上三角。

(4)矩陣的擴展

五、矩陣的數(shù)組運算

17

數(shù)組運算指元素對元素的算術(shù)運算,與通常意義上的由符號表示的線性代數(shù)矩陣運算不同。

1、數(shù)組加減

a.+b

a.-b

2、數(shù)組乘除

a.*b—a,b兩數(shù)組必須有相同的行和列兩數(shù)組相應(yīng)元素相乘。

?a=[l23;456;789];

?b=[246;135;7910];

?a.*b

ans=

2818

41530

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論