MATLAB上機實驗實驗報告參考模板_第1頁
MATLAB上機實驗實驗報告參考模板_第2頁
MATLAB上機實驗實驗報告參考模板_第3頁
MATLAB上機實驗實驗報告參考模板_第4頁
MATLAB上機實驗實驗報告參考模板_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、MATLAB上機實驗一一、實驗目的初步熟悉 MATLAB 工作環(huán)境,熟悉命令窗口,學會使用幫助窗口查找?guī)椭畔ⅰC畲翱诙?、實驗內?1) 熟悉MATLAB 平臺的工作環(huán)境。(2) 熟悉MATLAB 的5 個工作窗口。(3) MATLAB 的優(yōu)先搜索順序。三、實驗步驟1. 熟悉MATLAB 的5 個基本窗口 Command Window (命令窗口) Workspace (工作空間窗口)2 / 76 Command History (命令歷史記錄窗口) Current Directory (當前目錄窗口) Help Window (幫助窗口)(1) 命令窗口(Command Window)。在

2、命令窗口中依次輸入以下命令:>>x=1>> y=1 2 3 4 5 6 7 8 9;>> z1=1:10,z2=1:2:5;>> w=linspace(1,10,10);>> t1=ones(3),t2=ones(1,3),t3=ones(3,1)>> t4=ones(3),t4=eye(4)x =1z1 = 1 2 3 4 5 6 7 8 9 10t1 = 1 1 1 1 1 1 1 1 t2 = 1 1 1t3 = 1 1 1t4 = 1 1 1 1 1 1 1 1 1t4 = 1 0 0 0 0 1 0 0 0 0

3、1 0 0 0 0 1思考題: 變量如何聲明,變量名須遵守什么規(guī)則、是否區(qū)分大小寫。答:(1)變量聲明 1.局部變量每個函數都有自己的局部變量,這些變量只能在定義它的函數內部使用。當函數運行時,局部變量保存在函數的工作空間中,一旦函數退出,這些局部變量將不復存在。腳本(沒有輸入輸出參數,由一系列MATLAB命令組成的M文件)沒有單獨的工作空間,只能共享調用者的工作空間。當從命令行調用,腳本變量存在基本工作空間中;當從函數調用,腳本變量存在函數空間中。2.全局變量在函數或基本工作空間內,用global聲明的變量為全局變量。例如聲明a為全局變量:>>global a聲明了全局變量的函數

4、或基本工作空間,共享該全局變量,都可以給它曲賦值。如果函數的子函數也要使用全局變量,也必須用global聲明。3.永久變量永久變量用persistent聲明,只能在M文件函數中定義和使用,只允許聲明它的函數存取。當聲明它的函數退出時,MATLAB不會從內存中清除它,例如聲明a為永久變量:>>persistent a(2)變量命名規(guī)則如下:始于字母,由字母、數字或下劃線組成;區(qū)分大小寫;可任意長,但使用前N個字符。N與硬件有關,由函數namelengthmax返回,一般N=63;不能使用關鍵字作為變量名(關鍵字在后面給出);避免使用函數名作為變量名。如果變量采用函數名,該函數失效。(

5、3)區(qū)分大小寫 試說明分號、逗號、冒號的用法。 答:分號:加上分號“;”其作用是將計算機結果存入內存,但不顯示在屏幕上,反之,語句結尾若不加“;”,則表示在語句執(zhí)行后,在將計算結果存入內存的同時,還將運算結果顯示出來。 逗號:分割列表 冒號:從什么到什么,比如1:10意思是1到10 linspace( )稱為“線性等分”函數,說明它的用法??墒褂胔elp命令,格式如下:>>help linspace 說明函數ones( )、zeros( )、eye( ) 的用法。答;(1)ones()函數:全部元素都為1的常數矩陣; (2)zeros()函數:全部元素都為0的矩陣; (3)eye(

6、)函數:單位矩陣; (4)linspace()函數:如a=linspace(n1,n2,n3),表示在線性空 間上,行矢量的值從n1到n2(2) 工作空間窗口(Workspace)。單擊工作空間窗口右上角的按鈕,將其從MATLAB 主界面分離出來。 在工作空間查看各個變量,或在命令窗口用who, whos(注意大小寫)查看各個變量。 在工作空間雙擊變量,彈出Array Editor 窗口(數組編輯器窗口),即可修改變量。 使用save 命令把工作空間的全部變量保存為my_var.mat 文件。>>save my_var.mat 輸入下列命令:>>clear all %清

7、除工作空間的所有變量觀察工作空間的變量是否被清空。使用load 命令把剛才保存的變量載入工作空間。>>load my_var.mat 清除命令窗口命令:>>clc(3) 歷史命令窗口(Command History)。打開歷史命令窗口,可以看到每次運行MATLAB 的時間和曾在命令窗口輸入過的命令,練習以下幾種利用歷史命令窗口重復執(zhí)行輸入過的命令的方法。 在歷史命令窗口中選中要重復執(zhí)行的一行或幾行命令,右擊,出現(xiàn)快捷菜單,選擇Copy,然后再Paste 到命令窗口。 在歷史命令窗口中雙擊要執(zhí)行的一行命令,或者選中要重復執(zhí)行的一行或幾行命令后,用鼠標將其拖動到命令窗口中執(zhí)

8、行。 在歷史命令窗口中選中要重復執(zhí)行的一行或幾行命令,右擊,出現(xiàn)快捷菜單,選擇Evaluate Selection,也可以執(zhí)行。 或者在命令窗口使用方向鍵的上下鍵得到以前輸入的命令。例如,按方向鍵“”一次,就重新將用戶最后一次輸入的命令調到MATLAB 提示符下。重復地按方向上鍵“”,就會在每次按下的時候調用再往前一次輸入的命令。類似地,按方向鍵“”的時候,就往后調用一次輸入的命令。按方向鍵“”或者方向鍵“”就會在提示符的命令中左右移動光標,這樣用戶就可以用類似于在字處理軟件中編輯文本的方法編輯這些命令。(4) 當前目錄命令窗口(Current Directory)。MATLAB 的當前目錄即

9、是系統(tǒng)默認的實施打開、裝載、編輯和保存文件等操作時的文件夾。打開當前目錄窗口后,可以看到用“save”命令所保存的my_var.mat 文件是保存在目錄C:MATLAB6p5work 下。(5) 幫助窗口(Help Window)。單擊工具欄的圖標,或選擇菜單View|Help,或選擇菜單Help|MATLAB Help 都能啟動幫助窗口。 通過Index 選項卡查找log2()函數的用法,在Search index for 欄中輸入需要查找的詞匯“l(fā)og2”,在左下側就列出與之最匹配的詞匯條目,選擇“l(fā)og21”,右側的窗口就會顯示相應的內容。 也可以通過Search 選項卡查找log2(

10、)函數的用法。Search 選項卡與Index 選項卡不同,Index 只在專用術語表中查找,而Search 搜索的是整個HTML 幫助文件。2. MATLAB 的數值顯示格式設置屏幕顯示方式有緊湊(Compact)和松散(Loose)兩種,其中Loose 為默認方式。>>a=ones(1,30)>>format compact>>a數字顯示格式有short、long、short e、long e 等,請參照教材的列表練習一遍。>>format long>>pi>>format short>>pi>>

11、;format long>>pi>>format +>>pi>>-pi3. 變量的搜索順序在命令窗口中輸入以下指令:>>pi>>sin(pi);>>exist('pi')>>pi=0;>>exist('pi')>>pi>>clear pi>>exist('pi')>>pi思考題: 3 次執(zhí)行exist('pi')的結果一樣嗎?如果不一樣,試解釋為什么?答:不一樣,pi原來是庫存

12、函數,但是如果被賦值則系統(tǒng)默認被賦予的值為pi后來的值,但是當執(zhí)行clear pi之后所賦的值被清空,因此pi的值又成為3.1416 圓周率pi 是系統(tǒng)的默認常量,為什么會被改變?yōu)??答:pi原來是庫存函數,但是如果被賦值則系統(tǒng)默認被賦予的值為pi后來的值,但是當執(zhí)行clear pi之后所賦的值被清空,因此pi的值又成為3.1416 實驗二 MATLAB語言基礎1、 實驗目的基本掌握MATLAB向量、矩陣、數組的生成及其基本運算(區(qū)分數組運算和矩陣運算)、常用的數學函數。交接字符串的操作。2、 實驗內容(1) 向量的生成和運算。(2) 矩陣的創(chuàng)建、引用和運算。(3) 多維數組的創(chuàng)建及運算。(4

13、) 字符串的操作。三、實驗步驟1.向量的生成和運算1) 向量的生成直接輸入法:A = 2 3 4 5 6 >> B=1;2;3;4;5 B = 1 2 3 4 5 冒號生成發(fā):>> A=1:2:10 ,B=1:10 ,C=10:-1:1 A = 1 3 5 7 9 B = 1 2 3 4 5 6 7 8 9 10 C = 10 9 8 7 6 5 4 3 2 1 函數法:Linspace( )是線性等分函數,logspace( )是對數等分函數。>> A=linspace(1,10) ,B=linspace(1,30,10)A = Columns 1 thr

14、ough 9 1.0000 1.0909 1.1818 1.2727 1.3636 1.4545 1.5455 1.6364 1.7273 Columns 10 through 18 1.8182 1.9091 2.0000 2.0909 2.1818 2.2727 2.3636 2.4545 2.5455 Columns 19 through 27 2.6364 2.7273 2.8182 2.9091 3.0000 3.0909 3.1818 3.2727 3.3636 Columns 28 through 36 3.4545 3.5455 3.6364 3.7273 3.8182 3.9

15、091 4.0000 4.0909 4.1818 Columns 37 through 45 4.2727 4.3636 4.4545 4.5455 4.6364 4.7273 4.8182 4.9091 5.0000 Columns 46 through 54 5.0909 5.1818 5.2727 5.3636 5.4545 5.5455 5.6364 5.7273 5.8182 Columns 55 through 63 5.9091 6.0000 6.0909 6.1818 6.2727 6.3636 6.4545 6.5455 6.6364 Columns 64 through 7

16、2 6.7273 6.8182 6.9091 7.0000 7.0909 7.1818 7.2727 7.3636 7.4545 Columns 73 through 81 7.5455 7.6364 7.7273 7.8182 7.9091 8.0000 8.0909 8.1818 8.2727 Columns 82 through 90 8.3636 8.4545 8.5455 8.6364 8.7273 8.8182 8.9091 9.0000 9.0909 Columns 91 through 99 9.1818 9.2727 9.3636 9.4545 9.5455 9.6364 9

17、.7273 9.8182 9.9091 Column 100 10.0000 B = Columns 1 through 9 1.0000 4.2222 7.4444 10.6667 13.8889 17.1111 20.3333 23.5556 26.7778 Column 10 30.0000>> A=logspace(0,4,5)A = 1 10 100 1000 10000練習: 使用logspace( )創(chuàng)建1-4的有10個元素的行向量。答案: >> A=logspace(1,10,4*pi)A = 1.0e+010 * Columns 1 through 9

18、 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0001 0.0005 0.0035 Columns 10 through 12 0.0231 0.1520 1.00002) 向量的運算維數相同的行向量只見可以相加減,維數相同的列向量也可以相加減,標量可以與向量直接相乘除。>> A=1 2 3 4 5, B=3:7, A = 1 2 3 4 5 B = 3 4 5 6 7 >> AT=A', BT=B', AT = 1 2 3 4 5 BT = 3 4 5 6 7 >> E1=A+B, E2=A-B

19、E1 = 4 6 8 10 12E2 = -2 -2 -2 -2 -2 >> F=AT-BT, F = -2 -2 -2 -2 -2 >> G1=3*A, G2=B/3, G1 = 3 6 9 12 15 G2 = 1.0000 1.3333 1.6667 2.0000 2.3333 向量的點積與叉積運算。>> A=ones(1,10);B=(1:10); BT=B'>> E1=dot(A,B) E1 = 55 >> E2=A*BT E2 = 55>> clear>> A=1:3,B=3:5, A =

20、1 2 3 B = 3 4 5 >> E=cross(A,B) E =-2 4 -22. 矩陣的創(chuàng)建、引用和運算 1) 矩陣的創(chuàng)建和引用 矩陣是由元素構成的矩陣結構,行向量和列向量是矩陣的特殊形式。 直接輸入法: >> A=1 2 3;4 5 6 A = 1 2 3 4 5 6 >> B= 1 4 7 2 5 8 3 6 9 B = 1 4 7 2 5 8 3 6 9>> A(1)ans = 1>> A(4:end)ans = 5 3 6>> B(:,1)ans = 1 2 3>> B(:)ans = 1 2

21、3 4 5 6 7 8 9>> B(5)ans = 5抽取法>> clear>> A=1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16A = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16>> B=A(1:3,2:3)B = 2 3 6 7 10 11>> C=A(1 3,2 4)C = 2 4 10 12>> A(1 3;2 4)ans = 1 9 5 13 函數法:>> A=ones(3,4)A = 1 1 1 1 1 1 1 1 1 1 1 1&g

22、t;> B=zero(3)? Undefined function or method 'zero' for input arguments of type 'double'.>> B=zeros(3)B = 0 0 0 0 0 0 0 0 0>> C=eyes(3,2)? Undefined function or method 'eyes' for input arguments of type 'double'.>> C=eye(3,2)C = 1 0 0 1 0 0>>

23、 D=magic(3)D = 8 1 6 3 5 7 4 9 2拼接法>> clear>> A=ones(3,4)A = 1 1 1 1 1 1 1 1 1 1 1 1>> B=zeros(3)B = 0 0 0 0 0 0 0 0 0>> C=eye(4)C = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1>> D=A BD = 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0>> F=A;CF = 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1

24、 0 0 0 0 1 0 0 0 0 1拼接函數和變形函數法:>> clear>> A=0 1;1 1A = 0 1 1 1>> B=2*ones(2)B = 2 2 2 2>> cat (1,A,B,A)ans = 0 1 1 1 2 2 2 2 0 1 1 1>> cat (2 A,B,A)? cat (2 A,B,A)Error: Unexpected MATLAB expression.>> cat(2,A,B,A)ans = 0 1 2 2 0 1 1 1 2 2 1 1>> repmat(A,2,2

25、)ans = 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1>> repmat(A,2)ans = 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1練習:使用函數法、拼接法、拼接函數法和變形函數法,按照要求創(chuàng)建以下矩陣:A為 的全1矩陣、B為的0矩陣/C為的單位矩陣、D為的魔方陣、E由C 和D縱向拼接而成,F(xiàn)抽取E的2-5行元素生成、G由經變形為的矩陣而得、 以為子矩陣用復制函數(repmat)生成的大矩陣H。答案:>> A=ones(3,4)A = 1 1 1 1 1 1 1 1 1 1 1 1>> B=zeros(3,3)B

26、 = 0 0 0 0 0 0 0 0 0>> C=eye(3)C = 1 0 0 0 1 0 0 0 1>> D=magic(3)D = 8 1 6 3 5 7 4 9 2>> E=C;DE = 1 0 0 0 1 0 0 0 1 8 1 6 3 5 7 4 9 2>> F=(2:5,:)? F=(2:5,:)Error: Expression or statement is incorrect-possibly unbalanced (, , or .>> F=E(2:5,:)F = 0 1 0 0 0 1 8 1 6 3 5 7&

27、gt;> G=respace(E,3,4)? Undefined command/function 'respace'.>> G=respace(F,3,4)? Undefined command/function 'respace'.>> G=reshape(F,3,4)G = 0 3 1 1 0 1 5 6 8 0 0 7>> H=repmat(G,2,2)H = 0 3 1 1 0 3 1 1 0 1 5 6 0 1 5 6 8 0 0 7 8 0 0 7 0 3 1 1 0 3 1 1 0 1 5 6 0 1 5

28、 6 8 0 0 7 8 0 0 72) 矩陣的運算 矩陣的加減、數乘與乘法 已知矩陣:>> A=1 2 3 -1,A = 1 2 3 -1>> B=-1 0 1 2B = -1 0 1 2>> A+Bans = 0 2 4 1>> 2*Aans = 2 4 6 -2>> 2*A-3*Bans = 5 4 3 -8>> A*Bans = 1 4-4 -2 矩陣的逆矩陣>> format rat;A=1 0 1;2 1 2;0 4 6A = 1 0 1 2 1 2 0 4 6 >> A1=inv(A)

29、A1 = -1/3 2/3 -1/6 -2 1 0 4/3 -2/3 1/6 >> A*A1ans = 1 0 0 0 1 0 0 0 1 矩陣的除法>> a=1 2 1;3 1 4;2 2 1,b=1 1 2,d=b'a = 1 2 1 3 1 4 2 2 1 b = 1 1 2 d = 1 1 2 >> c1=b*inv(a),c2=b/ac1 = 6/7 3/7 -4/7 c2 = 6/7 3/7 -4/7 >> c3=inv(a)*d, c4=abc3 = 1 2/7 -4/7 ? Error using => mldivi

30、deMatrix dimensions must agree.>> c3=inv(a)*d, c4=adc3 = 1 2/7 -4/7 c4 = 1 2/7 -4/7 練習: 按下列要求求出各種的矩陣運算的值 求矩陣的秩、特征值和特征向量、 矩陣的乘冪與開方; 矩陣的指數與對數 矩陣的提取與翻轉答案: >> A=6 3 4 3 -2 5 7 -4 8 -1 -3 -7A = 6 3 4 3 -2 5 7 -4 8 -1 -3 -7>> B=rank(A)B = 3>> rb=rank(A)rb = 3>> X,Lamda=eig(A)

31、? Error using => eigMatrix must be square.>> X,Lamda=eigs(A)? Error using => eigsA must be a square matrix or a function which computes A*x.>> C=6 3 4 -2 5 7 8 -1 -3C = 6 3 4 -2 5 7 8 -1 -3>> X,Lamda=eigs(C)X = 0.8013 -0.1094 -0.1606 0.3638 -0.6564 0.8669 0.4749 0.7464 -0.471

32、9Lamda = 9.7326 0 0 0 -3.2928 0 0 0 1.5602>> X,Lamda=eig(C)X = 0.8013 -0.1094 -0.1606 0.3638 -0.6564 0.8669 0.4749 0.7464 -0.4719Lamda = 9.7326 0 0 0 -3.2928 0 0 0 1.5602>> X,Lamda=eig(C)X = 0.8013 -0.1094 -0.1606 0.3638 -0.6564 0.8669 0.4749 0.7464 -0.4719Lamda = 9.7326 0 0 0 -3.2928 0

33、0 0 1.5602>> D=A2? Error using => mpowerMatrix must be square.>> D=C2D = 62 29 33 34 12 6 26 22 34>> E=sqrtm(C)E = 2.2447 + 0.2706i 0.6974 - 0.1400i 0.9422 - 0.3494i -0.5815 + 1.6244i 2.1005 - 0.8405i 1.7620 - 2.0970i 1.9719 - 1.8471i -0.3017 + 0.9557i 0.0236 + 2.3845i>> F

34、=expm(C)F = 1.0e+004 * 1.0653 0.5415 0.6323 0.4830 0.2465 0.2876 0.6316 0.3206 0.3745>> G=logm(C)Warning: Principal matrix logarithm is not defined for A with nonpositive real eigenvalues. A non-principal matrix logarithm is returned.> In funm at 153 In logm at 27G = 1.7129 + 0.4686i 0.5305

35、 - 0.2425i 0.5429 - 0.6049i 1.1938 + 2.8123i 0.3658 - 1.4552i -0.5514 - 3.6305i -0.0748 - 3.1978i 0.7419 + 1.6546i 1.8333 + 4.1282i>> H=fliplr(C)H = 4 3 6 7 5 -2 -3 -1 8>> I=triu(C)I = 6 3 4 0 5 7 0 0 -3>> J=tril(C)J = 6 0 0 -2 5 0 8 -1 -3>> K=diag(C)K = 6 5-33. 多維數組的創(chuàng)建及運算1)

36、多維數組的創(chuàng)建>> A1=1,2,3;4 5 6;7,8,9;A2=reshape(10:18,3,3)A2 = 10 13 16 11 14 17 12 15 18>> T1(:,:,1)=ones(3);T1(:,:,2)=zeros(3)T1(:,:,1) = 1 1 1 1 1 1 1 1 1T1(:,:,2) = 0 0 0 0 0 0 0 0 0>> T2=ones(3,3,2)T2(:,:,1) = 1 1 1 1 1 1 1 1 1T2(:,:,2) = 1 1 1 1 1 1 1 1 1>> T3=cat(3,A1,A2),T4

37、=repmat(A1,1,1,2)T3(:,:,1) = 1 2 3 4 5 6 7 8 9T3(:,:,2) = 10 13 16 11 14 17 12 15 18T4(:,:,1) = 1 2 3 4 5 6 7 8 9T4(:,:,2) = 1 2 3 4 5 6 7 8 92) 多維數組的創(chuàng)建 數組運算用小圓點加在運算符的前面表示,以區(qū)分矩陣的運算。特點是兩個數組相對應的元素進行運算。 >> A=1:6;B=ones(1,6);>> C1=A+B,C2=A-BC1 = 2 3 4 5 6 7C2 = 0 1 2 3 4 5>> C3=A.*B,C4

38、=B./A,C5=A.BC3 = 1 2 3 4 5 6C4 = 1.0000 0.5000 0.3333 0.2500 0.2000 0.1667C5 =1.0000 0.5000 0.3333 0.2500 0.2000 0.1667 關系運算或邏輯運算的結果都是邏輯值。>> I=A>3,C6=A(I) I = 0 0 0 1 1 1C6 = 4 5 6>> A1=A-3,I2=A1&AA1 = -2 -1 0 1 2 3I2 = 1 1 0 1 1 1>> I3=II3 = 1 1 1 0 0 04. 字符串的操作1) 字符串的創(chuàng)建 &g

39、t;> S1='Ilike MATLAB'S1 =Ilike MATLAB>> S2='I''m a stuent.'S2 =I'm a stuent.>> S3=S2,'and',S1S3 =I'm a stuent.andIlike MATLAB2) 求字符串長度>> length(S1)ans = 12>> size(S1)ans = 1 123) 字符串與一維數值數組的相互轉換>> CS1=abs(S1)CS1 = 73 108 105 10

40、7 101 32 77 65 84 76 65 66>> CS2=double(S1)CS2 = 73 108 105 107 101 32 77 65 84 76 65 66>> char(CS2)ans =Ilike MATLAB>> setstr(CS2)ans =Ilike MATLAB練習:用char( )和向量生成的方法創(chuàng)建如下字符串AaBbCc.XxYyZz.>> S1=65:90;S2=97:122;>> C=S1;S2;>> C=C(:)'>> S3=double(C);char(S3)ans =AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvW

溫馨提示

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

評論

0/150

提交評論