《MATLAB語言》復(fù)習(xí).ppt_第1頁
《MATLAB語言》復(fù)習(xí).ppt_第2頁
《MATLAB語言》復(fù)習(xí).ppt_第3頁
《MATLAB語言》復(fù)習(xí).ppt_第4頁
《MATLAB語言》復(fù)習(xí).ppt_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

MATLAB語言復(fù)習(xí),復(fù)習(xí)提綱,MATLAB基本操作 MATLAB數(shù)值數(shù)組 字符串?dāng)?shù)組/元胞數(shù)組/構(gòu)架數(shù)組 M文件和流程控制 符號計算 數(shù)據(jù)和函數(shù)可視化 Simulink模型 MATLAB編譯器 復(fù)習(xí)題,一、MATLAB基本操作,1.數(shù)值的記述: 采用習(xí)慣的十進制表示法 可以直接輸入復(fù)數(shù) a+bi 或 r*exp(i*theta) 2. 變量命名規(guī)則 變量名、函數(shù)名由英文字母、數(shù)字、下劃線構(gòu)成。 變量名、函數(shù)名區(qū)分字母大小寫。A1、a1代表不同含義。 變量名第一個字符必須是英文字母。 變量名不得包含空格、標點,可以包含下劃線。,一、MATLAB基本操作(續(xù)),3. MATLAB默認的預(yù)定義變量 ans 計算結(jié)果的缺省變量名 NaN, nan 非數(shù),如 0/0 eps 機器零閥值 Inf, inf 無窮大,如 1/0 i, j 虛單元 i=j=(-1)1/2 pi 圓周率 nargin 函數(shù)輸入宗量數(shù)目 nargout 函數(shù)輸出宗量數(shù)目 varargin 變長度輸入宗量 varargout 變長度輸出宗量,一、MATLAB基本操作(續(xù)),4. 運算符和表達式 a) 表達式由變量名、運算符和函數(shù)名組成。 b) 表達式按優(yōu)先級自左向右運算,括號可改變優(yōu)先級順序。 c) 優(yōu)先級順序由高到低:指數(shù)運算、乘除運算、加減運算。 d) 表達式中賦值符“=”和運算符兩側(cè)允許有空格。 “/” 和 “”代表左除(常用除法)和右除運算。 對于數(shù)值a, b, c a/(b+c) 表示a(b+c), a(b+c) 表示(b+c)a。 對于矩陣 A/B 表示AB-1,即A*inv(B); BA 表示B-1A,即inv(B)*A。,一、MATLAB基本操作(續(xù)),5. 指令窗常用控制指令 cd 設(shè)置當(dāng)前工作目錄 clf 清除圖形窗 clc 清除指令窗中顯示的內(nèi)容 which 指出文件所在目錄 clear 清除內(nèi)存變量 who/whos 查詢內(nèi)存變量 save/load 存取數(shù)據(jù)文件(*.mat) edit 打開M文件編輯器 open 打開文件 exit/quit 退出MATLAB dir 列出指定目錄的文件清單,一、MATLAB基本操作(續(xù)),6. 指令行中常用的標點符號 空格 分隔輸入量;分隔數(shù)組元素 逗號 , 作為要顯示結(jié)果的指令的結(jié)尾;分隔輸入量;分隔數(shù)組元素 黑點 . 小數(shù)點 分號 ; 作為不顯示結(jié)果的指令的結(jié)尾;分隔數(shù)組中的行 冒號 : 用作生成一維數(shù)組;用作下標時表示該維上的所有元素 注釋號 % 其后內(nèi)容為注釋內(nèi)容 單引號 其內(nèi)容為字符串 圓括號 ( ) 用作數(shù)組標識;表示函數(shù)輸入宗量列表時用 方括號 輸入數(shù)組時用;表示函數(shù)輸出宗量列表時用 花括號 用作元胞數(shù)組標識 下連符 _ 用在變量、函數(shù)和文件名中 續(xù)行號 將長指令行分成兩行輸入,保持兩行的邏輯連續(xù)。,二、MATLAB數(shù)值數(shù)組,1. 數(shù)組的創(chuàng)建和尋訪 1) 整個輸入數(shù)組必須用方括號對“ ”框起來。 2) 利用 x = a : inc : b 生成均勻分布的一維數(shù)組,步長inc 默認值為1。必須符合遞增或遞減規(guī)律。 例如:t=0:0.1:5; x=5:-1:0; s=0:0.1:-2(錯誤) 3) 數(shù)組的行與行之間用分號“;”或回車分隔;一行內(nèi)的數(shù)組元素用逗號“,”或空格“ ”分隔。 3) 子數(shù)組尋訪取決于 x ( index )中的下標index,下標可以是全下標或單下標。注意單下標的排列順序。 4) 下標 index 可以是數(shù)值數(shù)組,但是 index 的元素取值必須在 1 , end 的范圍內(nèi)。end 為最大下標。,二、MATLAB數(shù)值數(shù)組(續(xù)),5) 注意被賦值的子數(shù)組長度與送入的數(shù)組長度一致。 6) “邏輯數(shù)組”:由邏輯或關(guān)系運算得到,元素值為1或0,代表邏輯或關(guān)系運算結(jié)果的真假。,二、MATLAB數(shù)值數(shù)組(續(xù)),舉例: 尋址: A(r,c), A(r,:), A(:,c), A(:), A(s) A(L) A(r,c)=Sa, A(:)=D(:), A(s)=Sa 假設(shè) A=2:7; 區(qū)分: L=A5 L=1 1 1 0 0 0 返回值為邏輯數(shù)組 L=find(A5) L=1 2 3 返回值為滿足條件的元素的下標 S=A(A5) S=2 3 4 返回值為數(shù)組的元素 或 S=A(find(A5),二、MATLAB數(shù)值數(shù)組(續(xù)),2. 數(shù)組的類型、大小、維數(shù) class, ndims, size, length 3. 數(shù)組運算和矩陣運算 數(shù)組運算則是對數(shù)組中的每個元素進行同樣的運算,參加運算的幾個數(shù)組必須同維。 矩陣運算按照矩陣運算的規(guī)則對參加計算的矩陣和計算結(jié)果有相應(yīng)的要求 關(guān)系、邏輯運算只適用于數(shù)組運算 例如:A.*B和A*B;A/B和A./B;A.n和An。,二、MATLAB數(shù)值數(shù)組(續(xù)),4. 多項式的表達方法 以多項式的系數(shù)構(gòu)成的行向量來表示多項式,多項式系數(shù)按照降冪順序輸入,如果有缺項,該項系數(shù)為零。 P(x)=anxn+an-1xn-1+a1x+a0 Pan an-1 a1 a0 得到方陣的特征多項式:p=poly(A) 根據(jù)多項式的根向量構(gòu)造多項式:p=poly(R) 打印多項式:poly2str(p,x),二、MATLAB數(shù)值數(shù)組(續(xù)),5. 標準數(shù)組生成函數(shù) zeros 產(chǎn)生全0數(shù)組 ones 產(chǎn)生全1數(shù)組 eye 產(chǎn)生單位數(shù)組 diag 產(chǎn)生對角型數(shù)組 magic 產(chǎn)生魔方數(shù)組 rand 產(chǎn)生均勻分布隨機數(shù)組 randn 產(chǎn)生正態(tài)分布隨機數(shù)組,二、MATLAB數(shù)值數(shù)組(續(xù)),6. 常用數(shù)組操作函數(shù) reshape, cat, repmat, diag A = reshape (-2:6 , 3 , 3) C = repmat (B, 1, 3) B, B, B cat ( 1 , A , B) A ; B,二、MATLAB數(shù)值數(shù)組(續(xù)),7. 高維數(shù)組 低維數(shù)組的函數(shù),例如 reshape, cat, repmat, diag或 ones, zeros, eye, 或 length, size, ndims等指令都適用于高維數(shù)組。,二、MATLAB數(shù)值數(shù)組(續(xù)),8. “非數(shù)”和“空”數(shù)組 1) NaN 或 nan 表示非數(shù),例如: 0/0,/,0 2) Inf 或 inf 表示無窮大,例如: 5/0,exp(1000) 。 3) 某一維長度為 0,或若干維長度為 0 的數(shù)組稱為“空數(shù)組”。例如: A= , B=ones(2,0) , C=zeros(0,2) 4) “非數(shù)”具有傳遞性,沒有大小概念,不能進行比較。 5) “空數(shù)組”不具有傳遞性, 全零數(shù)組,不存在。 6) 判斷指令isnan, isempty。,二、MATLAB數(shù)值數(shù)組(續(xù)),9. 關(guān)系操作和邏輯操作 任何非0數(shù)字都看作“邏輯真”,只有0看作“邏輯假”。 關(guān)系和邏輯運算的計算結(jié)果是一個由0和1組成的邏輯數(shù)組。 邏輯數(shù)組是具有真假判斷的作用的數(shù)值數(shù)組。 小于( ),等于( = ),不等于( = ) 與( & ),或( | ),非( ),三、字符串?dāng)?shù)組/元胞數(shù)組/構(gòu)架數(shù)組,1. 字符串?dāng)?shù)組 1) 必須將待建字符放在“英文單引號對”中。 2) 字符串可以包含中英文字符、空格、標點、數(shù)字等,都占一個元素位。 3) 當(dāng)字符串中包含單引號時,用連續(xù)兩個單引號表示。 4) 直接輸入多行串?dāng)?shù)組時必須保證各行等長。 5) char , str2mat , strvcat創(chuàng)建多行串?dāng)?shù)組,不需要考慮各行長度,自動按最長行設(shè)置。 6) 常用的串轉(zhuǎn)換函數(shù): abs, char, double, int2str , num2str , mat2str。例如:abs(a),double(b),int2str(3.1415), num2str(3.1415) 7) 判斷指令ischar,isletter 。,三、字符串?dāng)?shù)組/元胞數(shù)組/構(gòu)架數(shù)組(續(xù)),2. 元胞數(shù)組 1) 基本組成部分為“元胞”。 2) 元胞可以是任何類型、任意大小的數(shù)組(例如:數(shù)值數(shù)組、字符串?dāng)?shù)組、符號對象等)。 3) 圓括號對“( )”和花括號對“ ”的不同作用。 A( 2,3 ):表示元胞數(shù)組A第 2 行第 3 列的元胞。 A 2,3 :表示元胞數(shù)組A第 2 行第 3 列的元胞中的內(nèi)容。,三、字符串?dāng)?shù)組/元胞數(shù)組/構(gòu)架數(shù)組(續(xù)),3. 構(gòu)架數(shù)組 1) 基本組成部分是“構(gòu)架”。 2) 構(gòu)架必須劃分成“域”。構(gòu)架不能直接存放數(shù)據(jù),數(shù)據(jù)必須存放在構(gòu)架下面的“域”中。 3) 構(gòu)架的域可以存放任意類型、任意大小的數(shù)組(數(shù)值數(shù)組、字符串?dāng)?shù)組、符號對象、元胞等)。 4) 不同構(gòu)架的同名域中可以存放不同類型的內(nèi)容。 5) 對構(gòu)架數(shù)組增加或減少一個域會影響構(gòu)架數(shù)組內(nèi)所有的構(gòu)架。對某一個構(gòu)架的域增加或減少一個子域不會影響構(gòu)架數(shù)組內(nèi)的其它構(gòu)架。,四、M文件和流程控制,1. MATLAB控制流函數(shù) 1)循環(huán)控制語句 for, while end必須和for, while 成對出現(xiàn),不可省略。 for x=array ( commands ) end while expression ( commands ) end,四、M文件和流程控制(續(xù)),2)條件控制語句 if, switch if expression1 ( commands1 ) elseif expression2 ( commands2 ) else ( commandsk ) end,四、M文件和流程控制(續(xù)),2)條件控制語句 switch ex case test1 ( commands1 ) case testn ( commandsn ) otherwise ( commands ) end,注意:end配對的問題 switch 語句中,ex 的值可以是一個標量或字符串,test1、test2、可以是一個標量、字符串、元胞數(shù)組。當(dāng)test是元胞數(shù)組時,判斷ex的值是否與元胞數(shù)組中的一個值相符,來決定是否執(zhí)行后面的command語句。,四、M文件和流程控制(續(xù)),3) try - catch結(jié)構(gòu) try ( commands1 ) catch ( commands2 ) end,四、M文件和流程控制(續(xù)),2. M腳本文件和函數(shù)文件 1) M腳本文件是一連串MATLAB命令的組合。 2) M函數(shù)文件可以通過傳給它不同的輸入?yún)?shù),得到相應(yīng)的輸出參數(shù)。 3) 函數(shù)文件第一行必須聲明該文件為函數(shù)文件,具體形式為:function + 輸出宗量 + “=” + 函數(shù)名 +(輸入宗量)。,四、M文件和流程控制(續(xù)),4) 函數(shù)名盡量與文件名一致,如果不一致,調(diào)用該函數(shù)時應(yīng)使用文件名。 5) 輸入輸出宗量個數(shù):nargin, nargout。 6) “變長度”輸入輸出宗量:varargin, varargout。,四、M文件和流程控制(續(xù)),7) 函數(shù)聲明行中,“變長度”輸入輸出宗量必須在“普通”輸入輸出宗量之后。 8) varargin, varargout是元胞數(shù)組(varargin1)。 例如: i, j, varargout = example( x1, y1, m, varargin ),四、M文件和流程控制(續(xù)),3. 子函數(shù)和私有函數(shù) 1) 一個M函數(shù)文件可以包含多個函數(shù),每個函數(shù)都以函數(shù)聲明行來進行聲明。 2) 第一個出現(xiàn)的函數(shù)稱為主函數(shù),其它函數(shù)稱為子函數(shù)。 3) 通過函數(shù)文件名調(diào)用函數(shù)時,調(diào)用的是主函數(shù)。主函數(shù)的函數(shù)名應(yīng)該與文件名相同, 4) 子函數(shù)只能被同一文件內(nèi)的主函數(shù)或子函數(shù)調(diào)用。 私有函數(shù)位于private子目錄,只能被private的直接父目錄中的M文件調(diào)用。,四、M文件和流程控制(續(xù)),4. eval 和 feval 指令 1) eval 所執(zhí)行的字符串應(yīng)該包括函數(shù)名、輸入?yún)?shù),甚至輸出參數(shù)。 2) feval 的 FUN 字符串僅為函數(shù)名,輸入?yún)?shù)由 arg1, arg2 給出。 eval( s = sin(pi) ) s = eval( sin(pi) ) s = feval( sin, pi ),五、符號計算,1) 定義基本符號對象 f = sym ( arg ) %arg可以是字符串、數(shù)值 syms arg1 arg2 argk %注意空格分隔不同對象 2) 符號表達式基本指令 simple( Expr ) %化簡Expr表達式 collect( Expr,v ) %合并v的同冪項,默認x R2=subs( R1, old, new ) %通用置換指令,將R1中的old替換成new,五、符號計算(續(xù)),3) 常用符號計算指令 dfdvn = diff( f, v, n ) %符號表達式 f 對 v 求 n 階導(dǎo)數(shù) intf = int( f, v, a, b ) %符號表達式 f 對 v 求定積分 S=dsolve( a1, a2, ) 符號微分方程求解 例如:S=dsolve(Dx=y, Dy=-x, x(0)=-0.5,y(0)=0.5,s),六、數(shù)據(jù)和函數(shù)可視化,1. 二維繪圖的基本指令 plot:最基本的二維繪圖指令 stem:離散桿圖 subplot:劃分子圖的命令 例如:subplot(2,2,3) 2. 圖形注釋 title:圖名 xlabel:X坐標 ylabel:Y坐標 legend:圖例 text:文本,六、數(shù)據(jù)和函數(shù)可視化(續(xù)),3. 一元函數(shù)繪圖指令 ezplot 4. 基本圖形控制指令 axis on/off %是否顯示軸背景 grid on/off %是否顯示網(wǎng)格線 box on/off %是否顯示封閉坐標軸 figure %打開一個空白圖形窗,七、Simulink模型,信源( source ) + 系統(tǒng)( system ) + 信宿( sinks ) 信源: 信宿:,sim( model01.mdl )可以在命令窗口中運行仿真模型。,八、MATLAB編譯器,1) mex filename.c:將C源碼編譯生成MEX文件(*.dll) 2) mbuild filename.c:將C源碼編譯生成可獨立執(zhí)行文件(*.exe) 3) mcc ? filename.m:將M函數(shù)文件編譯生成MEX文件(*.dll)或可執(zhí)行文件(*.exe),由參數(shù)進行控制。,八、MATLAB編譯器(續(xù)),C源碼文件必須有的兩個部分: #include “mex.h“ 入口子程序:void mexFunction( int nlhs, mxArray *plhs, int nrhs, const mxArray *prhs ) /*用來完成MATLAB與功能子程序之間的通信任務(wù)*/ ,復(fù)習(xí)題,一、在下列語句的下方寫出該語句運行結(jié)果 1. clear 2. clc 3. clf 4. help conv 5. axis on 6. diary on 7. a1=eye(3); 8. b=reshape(1:9,3,3) 9. c=5/0 10. d=0/0,清除內(nèi)存變量 清除命令窗口中的內(nèi)容 清除圖形窗 給出conv的幫助信息 顯示軸背景 進行日志記錄 生成3*3的單位數(shù)組 b = 1 4 7 2 5 8 3 6 9 c=inf d=nan,復(fù)習(xí)題(續(xù)),二、利用語句實現(xiàn)下面的操作 1. 照同樣格式輸入字符串賦給變量s。 Usually, the word SOS is for emergency. s=Usally, the word SOS is for emergency.,復(fù)習(xí)題(續(xù)),2. 定義符號表達式:y=sin(t)e-0.1t sym(y=sin(t)*exp(-0.1*t) y=sym(sin(t)*exp(-0.1*t) 注意: 符號計算不使用.* ./等運算符,符號計算 自動使用數(shù)組運算規(guī)則進行運算。,復(fù)習(xí)題(續(xù)),3. 求微分方程的解: y=dsolve(D2y=0.5*exp(-0.1*t),復(fù)習(xí)題(續(xù)),4.得到大寫字母 Z 的ASCII碼 abs(Z) double(Z) 5. 得到數(shù)組A的大小 size(A) 6. 構(gòu)造元胞數(shù)組C C = line1 1 line2 2 C=line1 1;line2 2,復(fù)習(xí)題(續(xù)),7.已知t,y,做曲線y(t),要求紅色虛線做圖。 plot(t,y,r-) 8.將字符串s作為MATLAB命令行執(zhí)行。 eval(s) 9.在MATLAB命令窗口運行Simulink模型文件 sim1.mdl。 sim(sim1.mdl) 10. 在2*2個子圖中,選擇3號子圖準備繪圖。 subplot(2,2,3),復(fù)習(xí)題(續(xù)),三、編寫程序完成下面要求的操作 1. 已知:A B2,求AB A=1 2 -1;0 5 3; B=2 S1=A+B,復(fù)習(xí)題(續(xù)),求:X,A=1 0 -1;2 1 3;1 -1 2; b=2;3;1; X=Ab %x1,x2,x3=solve(x1-x3=2,2*x1+x2+3*x3=3,x1-x2+2*x3=1,x1,x2,x3),復(fù)習(xí)題(續(xù)),3.以同樣格式打印多項式 Pnum=1 1; Pden=1 0 2 3; disp(poly2str(Pnum,t); disp(-) disp(poly2str(Pden,t); %printsys(Pnum,Pden,t);,復(fù)習(xí)題(續(xù)),4. 求系統(tǒng)的階躍響應(yīng),系統(tǒng)傳遞函數(shù)為 H(s) num=1 1; den=1 2 2; step(num,den); % fuxi04.mdl,復(fù)習(xí)題(續(xù)),5. 求100個數(shù)字的和(1100)。 Sum=0; for n=1:100 Sum=Sum+n; end Sum %n=1:100; %Sum=sum(n),復(fù)習(xí)題(續(xù)),6. 已知字符串 g6yui78G85fj4jt8RHjsdj744UjdfO5,請找出該字符串中所有的數(shù)字,并保存成數(shù)值數(shù)組Digital。 s=g6yui78G85fj4jt8RHjsdj744UjdfO5; index=find(s=0 end Digital %Digital=double(s(index)-48,復(fù)習(xí)題(續(xù)),7. 以構(gòu)架數(shù)組表示3個人的基本信息,構(gòu)架數(shù)組的每一個構(gòu)架表示一個人的信息。三個人的基本信息如下:,復(fù)習(xí)題(續(xù)),S(1).Name=ZhangYuan; S(1).Age=20; S(1).Telephone=87541234; S(2).Name=XuFang; S(2).Age=21; S(2).Telephone=87544321; S(3).Name=ChenChen; S(3).Age=20; S(3).Telephone=87541111;,復(fù)習(xí)題(續(xù)),% Name=ZhangYuan;XuFang; % ChenChen; % Age=20;21;20; % Telephone=87541234;87544321; % 87541111; % S=struct(Name,Name, % Age,Age, % Telephone,Telephone),復(fù)習(xí)題(續(xù)),8. 編寫函數(shù)文件,對輸入?yún)?shù)x,判斷x為正數(shù)、負數(shù)或等于零,對應(yīng)三種判斷,函數(shù)分別返回1、1、0三個數(shù)值。 解答見下頁:,復(fù)習(xí)題(續(xù)),function m=sign(x) % SIGN Signum function. % For each element of X, SIGN(X) returns 1 if the element % is greater than zero, 0 if it equals zero and -1 if it is % less than zero. % 2003.12.20 if x0 m=-1; else if x=0 m =0; else m=1; end,復(fù)習(xí)題(續(xù)),9. 利用MATLAB編程語句繪制圖形。圖中曲線為正弦曲線的上半部分。 t=0:0.1:3*pi; y=sin(t); i=find(y2*pi).*y; plot(t,y),復(fù)習(xí)題(續(xù)),10. 已知連續(xù)信號卷積的計算式 求下面兩個信號的卷積。,復(fù)習(xí)題(續(xù)),syms t tao positive; ut=exp(-2*t); ht=sin(t); uh=subs(ut,t,tao)*subs(ht,t,t-tao) yt=int(uh,tao,0,t) yt=simple(yt) ezplot(yt,0,10),復(fù)習(xí)題(續(xù)),%離散數(shù)值法0,10內(nèi)不存在截尾誤差 clear T=0.02; tu=0:T:10; th=0:T:10; ut=exp(-2*tu); ht=sin(th); ty=0:T:(10+10); yt=T*conv(ut,ht); plot(tu,ut,g) hold on plot(th,ht,k) plot(ty,yt,b) hold off,%LAPLACE變換 syms t positive; Us=laplace(exp(-2*t) Hs=laplace(sin(t) Ys=Us*Hs yt=simple(ilaplace(Us*Hs) ezplot(yt,0,10),復(fù)習(xí)題(續(xù)),四、找出下面的程序中的錯誤 1. 程序一

溫馨提示

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

評論

0/150

提交評論