MATLAB在通信中的應用_第1頁
MATLAB在通信中的應用_第2頁
MATLAB在通信中的應用_第3頁
MATLAB在通信中的應用_第4頁
MATLAB在通信中的應用_第5頁
已閱讀5頁,還剩101頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2023/11/211OK,Nowbegin……2023/11/212課程介紹定位:專業(yè)選修課目標:了解MATLAB\Simulink

,熟練掌握簡單編程,結合所學通信工程專業(yè)知識,能夠使用MATLAB對通信系統(tǒng)進行仿真,加深理解??己耍捍?/p>

2023/11/21MATLAB在通信中的應用3第一講MATLAB初步認識1.1.1MATLAB的發(fā)展

MATLAB語言是由美國的CleverMoler博士于1980年開發(fā)的;設計者的初衷是為解決“線性代數(shù)”課程的矩陣運算問題;取名MATLAB即MatrixLaboratory矩陣實驗室的意思;

MATLAB以商品形式出現(xiàn)后的短短幾年,就以其良好的開放性和運行的可靠性,成功地應用于各工程學科的研究領域。2023/11/21MATLAB在通信中的應用4MATLAB版本的發(fā)展1984年,MATLAB第1版(DOS版)

1992年,MATLAB4.0版

1994年,MATLAB4.2版

1997年,MATLAB5.0版

1999年,MATLAB5.3版

2000年,MATLAB6.0版

2001年,MATLAB6.1版

2002年,MATLAB6.5版

2004年,MATLAB7.0版第一講MATLAB初步認識2023/11/21MATLAB在通信中的應用51.1.2MATLAB的主要特點

1.簡單易學

與C語言幾乎一致

2、編程簡潔、效率高語言規(guī)則不強,無需編譯

3、強大而簡單的繪圖功能二、三維繪圖,直觀展示結果第一講MATLAB初步認識2023/11/21MATLAB在通信中的應用64、擴展性強

MATLAB主工具箱符號數(shù)學工具箱SIMULINK仿真工具箱控制系統(tǒng)工具箱信號處理工具箱圖象處理工具箱通信工具箱系統(tǒng)辨識工具箱神經(jīng)元網(wǎng)絡工具箱金融工具箱第一講MATLAB初步認識2023/11/21MATLAB在通信中的應用71.信號處理工具箱(SignalProcessingToolbox),包括1)數(shù)字和模擬濾波器設計、應用及仿真;2)譜分析和估計;3)FFT變換;4)DCT變換。2.通信工具箱(CommunicationToolbox),包括:1)信號編碼;2)調(diào)制解調(diào);3)濾波器和均衡器設計;4)通道模型;5)多路訪問;6)錯誤控制編碼。第一講MATLAB初步認識2023/11/21MATLAB在通信中的應用81.1.3MATLAB應用領域仿真和建模實時仿真自動控制信號處理與通信數(shù)據(jù)分析、科學計算算法開發(fā)圖形、可視化研究獨立應用開發(fā)其他領域

第一講MATLAB初步認識2023/11/21MATLAB在通信中的應用9第二講MATLAB的基礎準備及入門一、MATLAB的安裝二、目錄結構與環(huán)境變量三、MATLAB工作環(huán)境四、命令窗口(CommandWindow)五、歷史命令窗口(CommandHistory)六、工作空間窗口(Workspace)七、MATLAB的程序編輯器八、保存和檢索數(shù)據(jù)九、幫助與在線查詢2023/11/21MATLAB在通信中的應用10第二講MATLAB的基礎準備及入門一、MATLAB的安裝

A碟:Matlab主程序及工具箱擴展包;

B碟:幫助文件。

建議安裝雙碟版的Matlab6.1、6.5或7.0,并且采用完全安裝。完全安裝需要大約1.4G的硬盤空間。2023/11/21MATLAB在通信中的應用11第二講MATLAB的基礎準備及入門二、Matlab的目錄結構1、MATLAB的目錄結構。正確安裝MATLAB后,在硬盤上生成一個文件夾,如C:\MATLAB,在這個根目錄下有:

\bin \extern

\demos \help

\java \rtw

\simulink \stateflow

\toolbox \sys

\ja \uninstall

\work2023/11/21MATLAB在通信中的應用12第二講MATLAB的基礎準備及入門二、Matlab的目錄結構(1)C:\matlab\bin該目錄下有建立MEX文件所需的批處理文件和必需的二進制文件。(2)C:\

matlab\extern包含MATLAB與C或FORTRAN語言交互所需的函數(shù)定義和鏈接庫。(3)C:\matlab\toolbox工具箱目錄,該目錄包含以下子目錄:

\matlab

MATLAB核心工具包

\simulink

Simulink函數(shù)和工具2023/11/21MATLAB在通信中的應用13第二講MATLAB的基礎準備及入門二、Matlab的目錄結構(4)C:\matlab\work這是MATLAB的工作空間,在啟動系統(tǒng)時直接進入該目錄用以保存用戶自己的.mat或.m文件。作為MATLAB的高級用戶,應對MATLAB安裝后的目錄有深入的了解。2023/11/21MATLAB在通信中的應用14第二講MATLAB的基礎準備及入門三、MATLAB的工作環(huán)境CommandWindow命令窗口Workspace工作空間窗口或CurrentDirectory當前目錄窗口CommandHistory命令歷史窗口2023/11/21MATLAB在通信中的應用15第二講MATLAB的基礎準備及入門四、命令窗口的菜單SetPath…因機房計算機安裝了硬盤還原卡,所以上機做實驗時,每位同學在E盤下建立一個目錄(英文),然后將該目錄加入到Matlab搜索路徑中,并將其設置為當前目錄(CurrentDirectory)。2023/11/21MATLAB在通信中的應用16第二講MATLAB的基礎準備及入門四、命令窗口的命令命令窗口是MATLAB的主要交互窗口,MATLAB命令窗口中的“>>”為命令提示符,表示MATLAB正在處于準備狀態(tài)。2023/11/21MATLAB在通信中的應用17第二講MATLAB的基礎準備及入門四、命令窗口的命令

1.窗口命令clf:清除當前Figure窗口里的所有非隱藏圖形對象。Close:關閉當前的Figure窗口。Closeall:關閉所有的Figure窗口。Clc:清除命令窗口里的內(nèi)容,光標回到窗口的左上角2023/11/21MATLAB在通信中的應用18第二講MATLAB的基礎準備及入門五、歷史命令窗口(CommandHistory)

在歷史窗口中記錄著用戶在MATLAB命令窗中所輸入過的全部命令,在這個窗口中可以實現(xiàn)幾個主要的功能是:1、單行或多行命令的復制在命令歷史窗口用鼠標選定所要拷貝的命令,用右鍵彈出上下文菜單,選中Copy項,然后可以用Ctrl+V將其復制到命令窗口或任何地方。2、單行命令的運行選中單行命令,用右鍵彈出上下文菜單,選中EvaluateSelection,即會在命令窗口運行該行命令,也可直接雙擊該行命令,隨即在命令窗口看到運行結果。3、多行命令的運行方法同于單行命令;選中多行命令,用右鍵彈出上下文菜單,選中EvaluateSelection,即會在命令窗口運行該多行命令。2023/11/21MATLAB在通信中的應用19第二講MATLAB的基礎準備及入門五、歷史命令窗口(CommandHistory)4、把多行命令寫成M文件選中多行命令,用右鍵彈出上下文菜單,選中CreateM-File菜單項,就引出M文件編輯器,并將多行文本拷入,再利用M文件編輯器的操作保存即可。5、命令窗口實錄命令diary

在MATLAB運行過程中如果希望將當前命令窗口中所有命令(包括結果)保存起來,可以用diary命令。(1)在命令窗口運行命令diarymy_diary,全部命令記錄在內(nèi)存中;(2)運行命令diaryoff后,內(nèi)存中的全部內(nèi)容記錄在名為my_diary的日志文件中。(注意:日志文件可以帶擴展名.txt,也可以不帶擴展名)2023/11/21MATLAB在通信中的應用20第二講MATLAB的基礎準備及入門六、工作空間窗口(Workspace)

工作空間窗口又稱內(nèi)存瀏覽器,在其中保存著用戶所執(zhí)行命令或程序的中間變量和結果。2023/11/21MATLAB在通信中的應用21第二講MATLAB的基礎準備及入門七、MATLAB的程序編輯器進入程序編輯器在菜單File中選New(M-File)或Open項;直接利用按鈕工具欄中的按鈕New或Open;在命令窗口中輸入Edit命令。

MATLAB的這一編輯器主要用來編輯M文件。當一組命令通過改變某個變量的值就可以反復使用去解決不同的問題時,可以利用M文件編輯器。2023/11/21MATLAB在通信中的應用22第二講MATLAB的基礎準備及入門七、MATLAB的程序編輯器例1:畫出指數(shù)衰減曲線y1=exp(-t/3)*sin(3*t)和它的包絡y2=exp(-t/3),t的取值范圍是(0,4pi)。%example1.mt=0:pi/100:4*pi;y2=exp(-t/3);y1=y2.*sin(3*t);plot(t,y1,'-r',t,y2,':b',t,-y2,':b')存為example1.m,然后選中下拉菜單Debug|Run運行得到右圖。2023/11/21MATLAB在通信中的應用23第二講MATLAB的基礎準備及入門八、數(shù)組編輯器(ArrayEditor)當輸入大型數(shù)組時建議使用數(shù)組編輯器。在命令窗口中給一個變量賦為“空”陣;在工作空間瀏覽器中雙擊該變量,打開數(shù)組編輯器;在左上方的行(size)、列(by)數(shù)欄中填寫待建數(shù)組的大小,于是在編輯窗口出現(xiàn)數(shù)組元素格;(7.0版本中自動根據(jù)元素個數(shù)確定維數(shù)。)逐格填寫元素值。與此同時在內(nèi)存瀏覽器中的相應變量已經(jīng)改變。2023/11/21MATLAB在通信中的應用24第二講MATLAB的基礎準備及入門八、保存和檢索數(shù)據(jù)當你在工作窗中做了一些運算之后,需要暫時休息一下,希望將所作的工作保存,以便以后接著做下去,可以點擊File|SaveWorkspaceAs…項,會彈出一個對話框,選擇保存路徑并鍵入文件名,按“保存”鍵。當再次開始工作時,用File|Loadworkspace

或File|ImportData…再把該文件裝入,原來定義的變量又可以使用了。例1:建立一個工作文件(.mat)在工作窗中鍵入a=[123;456;789]b=[1;2;3]a*b按Enter,則計算出結果ans=[14;32;50]在File菜單中點取Saveworkspace…將工作窗中內(nèi)容存為file1.mat,系統(tǒng)默認保存路徑為MATLAB\work2023/11/21MATLAB在通信中的應用25第二講MATLAB的基礎準備及入門九、保存和檢索數(shù)據(jù)重新啟動MATLAB,鍵入a,回車,系統(tǒng)回復???Undefinedfunctionorvariable'a'.(表明此時系統(tǒng)中變量a沒有定義)在命令窗口鍵入Loadfile1.mat將文件裝入,再鍵入a,回車,系統(tǒng)將恢復。a=123456789鍵入who,顯示出當前工作環(huán)境下的變量名。鍵入whos,顯示出當前工作環(huán)境下所有變量的具體信息。2023/11/21MATLAB在通信中的應用26第二講MATLAB的基礎準備及入門十、幫助與在線查詢1、查找Matlab基本函數(shù)的信息(Elementarymathfunctions)>>helpelfun

2、查找某個具體函數(shù)的信息及使用方法:help函數(shù)名例:查找有關正弦函數(shù)的信息:>>helpsin3、瀏覽器界面的幫助信息>>helpwin顯示幫助總覽。在此界面下可以查找所有基本函數(shù)和專用函數(shù)的詳細信息。2023/11/21MATLAB在通信中的應用27第三講MATLAB的基本運算一、數(shù)組與矩陣的創(chuàng)建二、矩陣運算與數(shù)組運算三、基本元素群函數(shù)2023/11/21MATLAB在通信中的應用28變量命名

A.變量名必須是不含空格的單個單詞;

B.變量名區(qū)分大小寫;

C.變量名最多不超過63個字符;

D.變量名必須以字母打頭,之后可以是任意字母、數(shù)字或下劃線,變量名中不允許使用標點符號。

E.標準的函數(shù)名及命令名必須用小寫字母。

第三講MATLAB的基本運算2023/11/21MATLAB在通信中的應用292.賦值語句

(1)變量=表達式

(2)表達式

其中表達式是用運算符將有關運算量連接起來的式子,其結果是一個矩陣。默認變量:ans注釋語句:%開始MATLAB特別標點:;第三講MATLAB的基本運算2023/11/21MATLAB在通信中的應用30一、數(shù)組與矩陣的創(chuàng)建

1、生成數(shù)組的函數(shù)“:”的用法

例1:av=1:10%產(chǎn)生一個從1到10的數(shù)組,間隔為1(行向量)av=[1,2,3,4,5,6,7,8,9,10]例2:aw=1:2:10%產(chǎn)生一個從1到10之間的數(shù)組,間隔為2aw=[1,3,5,7,9]例3:as=0:pi/40:4*pi

as=00.78541.57082.35623.14163.92704.71245.49786.2832例4:al=10:-2:0al=1086420第三講MATLAB的基本運算2023/11/21MATLAB在通信中的應用31一、數(shù)組與矩陣的創(chuàng)建

1、生成數(shù)組的函數(shù)常用數(shù)組函數(shù)

例1:aj=linspace(0,1,10)%利用線性等分指令生成向量

(間隔1/9)aj=00.11110.22220.33330.44440.55560.66670.77780.88891.0000(01/92/93/9……1)例2:ap=rand(1,5)

%產(chǎn)生1×5的隨機數(shù)矩陣。范圍(0,1),均值:0.5ap=0.01530.74680.44510.93180.4660第三講MATLAB的基本運算在MATLAB中,變量的元素(即矩陣元)用圓括號“()”中的數(shù)字(也稱為下標)2023/11/21MATLAB在通信中的應用32一、數(shù)組與矩陣的創(chuàng)建

2、生成矩陣的常用函數(shù)

eye生成單位矩陣例1:eye(n)

%生成n

維的單位陣

eye(m,n)

%生成m×n

維的單位陣

eye(size(A))

%生成與A同維的單位陣

ones生成全1陣(常用于大型程序中預先定維)

zeros生成全0陣(常用于大型程序中預先定維)

rand生成均勻隨機陣(范圍(0,1),均值:0.5)

randn

生成正態(tài)隨機陣(均值:0.5;方差:1)第三講MATLAB的基本運算2023/11/21MATLAB在通信中的應用33第三講MATLAB的基本運算二、矩陣運算與數(shù)組運算1、矩陣運算A+B 加法A*B 乘法 k*A 數(shù)乘矩陣

A’ A的共軛轉置

conj(A’)或conj(A)’ A的轉置(conjugate:共軛)A^n A(方陣)的n次冪inv(A) A的逆陣

(inverse)A/B A右除B(=A*inv(B))B\A A左除B(=inv(B)*A)2023/11/21MATLAB在通信中的應用34第三講MATLAB的基本運算二、矩陣運算與數(shù)組運算2、元素群運算(“·”運算符)k.*A 數(shù)乘矩陣(=k*A)

A.*B 對應各元素相乘 A.^n

矩陣A各元素的n次冪A./B A對應各元素右除BB.\A A對應各元素左除B(=A./B)

兩矩陣進行點運算是指它們的對應元素進行相關運算,要求兩矩陣的維參數(shù)相同。2023/11/21MATLAB在通信中的應用35第三講MATLAB的基本運算二、矩陣運算與數(shù)組運算2、關系運算與邏輯運算

MATLAB提供了6種關系運算符:

<(小于)、<=(小于或等于)、>(大于)、

>=(大于或等于)、==(等于)、~=不等于)。

MATLAB提供了3種邏輯運算符:

&(與)、|(或)和~(非)。

它們的含義不難理解,但要注意其書寫方法與數(shù)學中的不等式符號不盡相同。2023/11/21MATLAB在通信中的應用36第三講MATLAB的基本運算三、函數(shù)2023/11/21MATLAB在通信中的應用37第三講MATLAB的基本運算五、向量與矩陣處理1、標識與子矩陣的提取A(i,j)表示矩陣A的第i行、第j列交叉點處的元素,i,j是兩個整數(shù)。A(u,v)提取A的子矩陣,u,v是兩個向量,分別指定行與列。向量標識:A(L1,:)A(:,L2)A(L1,L2),

A(L1,:) 表示提取A的L1指定的行、所有列構成子矩陣;

A(:,L2) 表示提取A的所有行,L2指定的列構成子矩陣;

A(L1,L2) 表示提取A的L1指定的行,L2指定的列構成子矩陣。例:A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15];A([1,3],:)A(:,[2,4,5])A(:,1:3)A([1,2],[1,3,5])2023/11/21MATLAB在通信中的應用38第三講MATLAB的基本運算五、向量與矩陣處理1、標識與子矩陣的提取*例:將隨機向量中滿足不超過0.5的元素提取出來。x=rand(1,10)L=(x<=0.5)y=x(L)2023/11/21MATLAB在通信中的應用39第三講MATLAB的基本運算五、向量與矩陣處理2、空陣用于縮維例:提取A的1,3,5列。A=[1,2,3,4,5,6;7,8,9,10,11,12;13,14,15,16,17,18];A1=A(:,[1,3,5])%方法一A1=1357911131517A(:,[2,4])=[]%方法二:利用空陣A=13579111315172023/11/21MATLAB在通信中的應用40第三講MATLAB的基本運算五、向量與矩陣處理3、特殊矩陣的提取

fliplr(A) 矩陣A左右翻轉

flipud(A) 矩陣A上下翻轉

v=diag(A) 提取A的對角線上的元素構造一個列向量vM=diag(v) 用向量v的元素作對角元素,構造一個對角矩陣ML=tril(A) 取矩陣A的左下三角部分(基于主對角線),其它元素為零

U=triu(A) 取矩陣A的右上三角部分(基于主對角線),其它元素為零

rot90(A) 矩陣A逆時針旋轉90°例:A=round(rand(4,5)*10)2023/11/21MATLAB在通信中的應用41第四講MATLAB程序設計一、M文件二、控制語句三、函數(shù)的調(diào)用2023/11/21MATLAB在通信中的應用421M文件1.1M文件概述用MATLAB語言編寫的程序,稱為M文件。M文件可以根據(jù)調(diào)用方式的不同分為兩類:

命令文件(ScriptFile)和函數(shù)文件(FunctionFile)。擴展名為:.m第四講MATLAB程序設計2023/11/21MATLAB在通信中的應用43例-1分別建立命令文件和函數(shù)文件,將華氏溫度f轉換為攝氏溫度c。程序1:首先建立命令文件并以文件名f2c.m存盤。clear;%清除工作空間中的變量f=input('InputFahrenheittemperature:');c=5*(f-32)/9然后在MATLAB的命令窗口中輸入f2c,InputFahrenheittemperature:73c=22.7778第四講MATLAB程序設計2023/11/21MATLAB在通信中的應用44程序2:首先建立函數(shù)文件f2c.m。functionc=f2c(f)c=5*(f-32)/9然后在MATLAB的命令窗口調(diào)用該函數(shù)文件。clear;y=input('InputFahrenheittemperature:');x=f2c(y)輸出情況為:InputFahrenheittemperature:70c=21.1111x=21.1111第四講MATLAB程序設計2023/11/21MATLAB在通信中的應用45不同點:命令文件:沒有輸入?yún)?shù),不返回輸出參數(shù)函數(shù)文件:有輸入?yún)?shù),返回輸出參數(shù)命令文件:對工作空間變量操作函數(shù)文件:局部變量命令文件:直接運行函數(shù)文件:不能直接運行,函數(shù)調(diào)用第四講MATLAB程序設計2023/11/21MATLAB在通信中的應用46二程序控制結構順序結構選擇結構if語句、switch語句、try語句循環(huán)結構for語句、while語句、第四講MATLAB程序設計2023/11/21MATLAB在通信中的應用47

1順序結構1.數(shù)據(jù)的輸入從鍵盤輸入數(shù)據(jù),使用input函數(shù)來進行,該函數(shù)的調(diào)用格式為:

A=input(提示信息,選項);

xm=input('What''syourname?','s');第四講MATLAB程序設計2.數(shù)據(jù)的輸出

disp(輸出項)其中輸出項既可以為字符串,也可以為矩陣。2023/11/21MATLAB在通信中的應用48

例-2輸入x,y的值,并將它們的值互換后輸出。程序如下:

x=input('Inputxplease.');y=input('Inputyplease.');z=x;x=y;y=z;disp(x);disp(y);第四講MATLAB程序設計2023/11/21MATLAB在通信中的應用492選擇結構1.if語句在MATLAB中,if語句有3種格式。

(1)單分支if語句:第四講MATLAB程序設計

格式之一:

if表達式

語句組A

end其工作流程如圖所示。2023/11/21MATLAB在通信中的應用50第四講MATLAB程序設計

格式之二:

if表達式

語句組A

else

語句組B

end

其工作流程如圖所示。2023/11/21MATLAB在通信中的應用51

例3計算分段函數(shù)的值。程序如下:x=input('請輸入x的值:');ifx<=0y=(x+sqrt(pi))/exp(2);elsey=log(x+sqrt(1+x*x))/2;endy第四講MATLAB程序設計2023/11/21MATLAB在通信中的應用52第四講MATLAB程序設計

格式之三:

if表達式1

語句組A

elseif

表達式2

語句組B

else

語句組Cend工作流程原理如圖2.3所示。2023/11/21MATLAB在通信中的應用53

例-4輸入一個字符,若為大寫字母,則輸出其對應的小寫字母;若為小寫字母,則輸出其對應的大寫字母;若為數(shù)字字符則輸出其對應的數(shù)值,若為其他字符則原樣輸出。c=input('請輸入一個字符','s');ifc>='A'&c<='Z'disp(setstr(abs(c)+abs('a')-abs('A')));elseifc>='a'&c<='z'disp(setstr(abs(c)-abs('a')+abs('A')));elseifc>='0'&c<='9'disp(abs(c)-abs('0'));elsedisp(c);end第四講MATLAB程序設計2023/11/21MATLAB在通信中的應用542.switch語句

switch語句根據(jù)表達式的取值不同,分別執(zhí)行不同的語句,其語句格式為:

switch表達式

case表達式1

語句組1case表達式2

語句組2……case表達式m

語句組motherwise

語句組nend第四講MATLAB程序設計2023/11/21MATLAB在通信中的應用55例5某商場對顧客所購買的商品實行打折銷售,標準如下(商品價格用price來表示):

price<200沒有折扣

200≤price<5003%折扣

500≤price<10005%折扣

1000≤price<25008%折扣

2500≤price<500010%折扣

5000≤price14%折扣輸入所售商品的價格,求其實際銷售價格。第四講MATLAB程序設計2023/11/21MATLAB在通信中的應用56

程序如下:price=input('請輸入商品價格');switchfix(price/100)case{0,1}%價格小于200rate=0;case{2,3,4}%價格大于等于200但小于500rate=3/100;casenum2cell(5:9)%價格大于等于500但小于1000rate=5/100;casenum2cell(10:24)%價格大于等于1000但小于2500rate=8/100;casenum2cell(25:49)%價格大于等于2500但小于5000rate=10/100;otherwise%價格大于等于5000rate=14/100;endprice=price*(1-rate)%輸出商品實際銷售價格第四講MATLAB程序設計2023/11/21MATLAB在通信中的應用573.try語句(matlab特有)語句格式為:try

語句組1catch

語句組2endtry語句先試探性執(zhí)行語句組1,如果語句組1在執(zhí)行過程中出現(xiàn)錯誤,則將錯誤信息賦給保留的lasterr變量,并轉去執(zhí)行語句組2。第四講MATLAB程序設計2023/11/21MATLAB在通信中的應用58例6矩陣乘法運算要求兩矩陣的維數(shù)相容,否則會出錯。先求兩矩陣的乘積,若出錯,則自動轉去求兩矩陣的點乘。程序如下:A=[1,2,3;4,5,6];B=[7,8,9;10,11,12];tryC=A*B;catchC=A.*B;endClasterr%顯示出錯原因第四講MATLAB程序設計2023/11/21MATLAB在通信中的應用593循環(huán)結構1.for語句for語句的格式為:

for循環(huán)變量=表達式1:表達式2:表達式3

循環(huán)體語句

end表達式1:循環(huán)變量的初值,表達式2:循環(huán)變量的步長,表達式3:循環(huán)變量的終值。第四講MATLAB程序設計2023/11/21MATLAB在通信中的應用60例-8一個三位整數(shù)各位數(shù)字的立方和等于該數(shù)本身則稱該數(shù)為水仙花數(shù)。輸出全部水仙花數(shù)。程序如下:form=100:999m1=fix(m/100);%求m的百位數(shù)字m2=rem(fix(m/10),10);%求m的十位數(shù)字m3=rem(m,10);%求m的個位數(shù)字ifm==m1^3+m2^3+m3^3disp(m)endend第四講MATLAB程序設計2023/11/21MATLAB在通信中的應用612.while語句

while表達式

語句A

end第四講MATLAB程序設計2023/11/21MATLAB在通信中的應用62

例-11從鍵盤輸入若干個數(shù),當輸入0時結束輸入,求這些數(shù)的平均值和它們之和。sum=0;cnt=0;val=input('Enteranumber(endin0):');while(val~=0)sum=sum+val;cnt=cnt+1;val=input('Enteranumber(endin0):');endif(cnt>0)summean=sum/cntend第四講MATLAB程序設計2023/11/21MATLAB在通信中的應用63

函數(shù)文件由function語句引導,基本結構為:

function輸出形參表=函數(shù)名(輸入形參表)%注釋說明部分函數(shù)體語句其中以function開頭的一行為引導行,表示該M文件是一個函數(shù)文件。函數(shù)名的命名規(guī)則與變量名相同。文件名與函數(shù)名的關系。輸入形參為函數(shù)的輸入?yún)?shù),輸出形參為函數(shù)的輸出參數(shù)。當輸出形參多于一個時,則應該用方括號括起來。三函數(shù)文件的基本結構第四講MATLAB程序設計2023/11/21MATLAB在通信中的應用64M函數(shù)文件的基本格式: 函數(shù)聲明行

H1行(用%開頭的注釋行)

在線幫助文本(用%開頭)

編寫和修改記錄(用%開頭)

函數(shù)體

第四講MATLAB程序設計2023/11/21MATLAB在通信中的應用65例14編寫函數(shù)文件求半徑為r的圓的面積和周長

函數(shù)文件如下:function[s,p]=fcircle(r)%CIRCLEcalculatetheareaandperimeterofacircleofradiir%r圓半徑%s圓面積%p圓周長%2004年7月30日編s=pi*r*r;p=2*pi*r;2023/11/21MATLAB在通信中的應用66函數(shù)調(diào)用的一般格式是:

[輸出實參表]=函數(shù)名(輸入實參表)要注意的是,函數(shù)調(diào)用時各實參出現(xiàn)的順序、個數(shù),應與函數(shù)定義時形參的順序、個數(shù)一致,否則會出錯。函數(shù)調(diào)用時,先將實參傳遞給相應的形參,從而實現(xiàn)參數(shù)傳遞,然后再執(zhí)行函數(shù)的功能。函數(shù)調(diào)用2023/11/21MATLAB在通信中的應用67

例3-15利用函數(shù)文件,實現(xiàn)直角坐標(x,y)與極坐標(ρ,θ)之間的轉換。函數(shù)文件tran.m:function[rho,theta]=tran(x,y)rho=sqrt(x*x+y*y);theta=atan(y/x);

調(diào)用tran.m的命令文件main1.m:x=input('Pleaseinputx=:');y=input('Pleaseinputy=:');[rho,the]=tran(x,y);rhothe

2023/11/21MATLAB在通信中的應用68第五講MATLAB繪圖二維圖形繪制三位圖形繪制2023/11/21MATLAB在通信中的應用691二維圖形繪制基本繪圖命令plot(Y)plot(X,Y)plot(X,Y,s)plot2023/11/21MATLAB在通信中的應用70二維圖形繪制plot(Y)以Y的索引坐標為橫坐標,Y本身為縱坐標,繪制圖形【例】>>y=rand(100,1);>>plot(y)2023/11/21MATLAB在通信中的應用71二維圖形繪制plot(X,Y)以X為橫坐標,Y為縱坐標,繪制圖形,這是實際應用最常見的【例】>>x=0:0.01*pi:2*pi;>>plot(x,sin(x))2023/11/21MATLAB在通信中的應用72二維圖形繪制plot(X,Y,s)以X為橫坐標,Y為縱坐標,繪制圖形,第3個參數(shù)控制圖形顯示屬性(線形、顏色及標識等)選項說明選項說明-實線.點:點線o圓-.點劃線xX-符號--虛線++符號y黃色*星號m紫紅色s方形c藍綠色d菱形r紅色v下三角g綠色^上三角b藍色<左三角w白色>右三角k黑色p正五邊形2023/11/21MATLAB在通信中的應用73二維圖形繪制plot(X,Y,s)以X為橫坐標,Y為縱坐標,繪制圖形,第3個參數(shù)控制圖形顯示屬性(線形、顏色及標識等)【例】>>x=0:0.01*pi:2*pi;>>y=sin(x);>>z=cos(x);>>plot(x,y,’rd’,x,z,’-.k’)2023/11/21MATLAB在通信中的應用74二維圖形繪制標題與軸標簽對圖形加上標題,標明橫縱坐標【例】>>x=0:0.01*pi:2*pi;>>y=sin(x);>>plot(x,y)>>title('正弦函數(shù)','FontSize',15)>>xlabel('x(0-2\pi)','FontSize',14)>>ylabel('y=sin(x)','FontSize',14)2023/11/21MATLAB在通信中的應用75二維圖形繪制在標注中如何輸入特殊符號θφψαβΩ?字符轉換如:\pi即顯示為π\(zhòng)Omega即顯示為Ω無須記住,用時會查,會聯(lián)想即可常見符號轉義示例控制字符串轉義控制字符串轉義控制字符串轉義\sigmaσ\SigmaΣ\PhiΦ\deltaδ\DeltaΔ\infty∞\leq≤\geq≥\neq≠2023/11/21MATLAB在通信中的應用76二維圖形繪制文本標注text(x,y,’標注文本及控制字符串’)【例】>>x=0:0.01*pi:2*pi;>>plot(x,sin(x))>>text(3*pi/4,sin(3*pi/4),['\leftarrowsin(3\pi/4)=',num2str(sin(3*pi/4))],'FontSize',12)2023/11/21MATLAB在通信中的應用77二維圖形繪制

將標題、坐標軸標記、網(wǎng)格線及文字注釋加注到圖形上,這些函數(shù)為:

title——

給圖形加標題

xlable——給x軸加標注

ylable——給y軸加標注

text——

在圖形指定位置加標注

gtext——

將標注加到圖形任意位置

gridon(off)——

打開、關閉坐標網(wǎng)格線

legend——

添加圖例

axis——

控制坐標軸的刻度2023/11/21MATLAB在通信中的應用78二維圖形繪制圖形的保持與子圖多次繪制得到重疊效果holdon開啟圖形保持功能holdoff關閉圖形保持功能坐標限若不一致,自動調(diào)整2023/11/21MATLAB在通信中的應用79二維圖形繪制示例【例】>>x=0:0.1*pi:2*pi;>>y=sin(x);>>z=cos(x)>>plot(x,y,’-*’)>>holdon%開啟>>plot(x,z,’-o’)>>plot(x,y+z,’-h’)>>legend(‘sin(x)’,’cos(x)’,’sin(x)+cos(x)’,0)>>holdoff%關閉2023/11/21MATLAB在通信中的應用80二維圖形繪制不同坐標軸下疊加圖形通過在相同位置創(chuàng)建新的坐標軸來實現(xiàn)圖形疊加方便數(shù)據(jù)的比較觀察例:一個將有害的廢料轉化為無害的生物醫(yī)學實驗。實驗中的廢料的聚乙烯物質(TCE)和相關溫度數(shù)據(jù)如下:TCE=[5154203702501351206020];temp=[2923272520232327];2023/11/21MATLAB在通信中的應用81二維圖形繪制不同坐標軸下疊加圖形上述數(shù)據(jù)在35天中每隔5天一個采樣得到,即days=0:5:35;tce=[5154203702501351206020];temp=[2923272520232327];plotyy(days,tce,days,temp);2023/11/21MATLAB在通信中的應用82二維圖形繪制子圖幾個圖形在同一圖形窗口表示出來subplotsubplot(m,n,p)將一個圖形窗口分割成m×n個子繪圖區(qū)域,通過區(qū)域編號參數(shù)p調(diào)用各子區(qū)域2023/11/21MATLAB在通信中的應用83二維圖形繪制子圖c=9:16;subplot(3,2,1)plot(c,rangescore(:,1:1))title('線性代數(shù)')subplot(3,2,2)plot(c,rangescore(:,2:2))title('微積分')subplot(3,2,3)plot(c,rangescore(:,3:3))title('大學英語')subplot(3,2,4)plot(c,rangescore(:,4:4))title('計算機導論')subplot(3,2,5)plot(c,rangescore(:,5:5))title('馬克思主義')subplot(3,2,6)plot(c,rangescore(:,6:6))title('C語言')1234562023/11/21MATLAB在通信中的應用84二維圖形繪制二維特殊函數(shù)圖函數(shù)名說明函數(shù)名說明area填充繪圖feather矢量圖bar條形圖harh水平條形圖hist直方圖pie餅圖polar極坐標圖contour等高線圖表:Matlab中常見二維特殊圖形函數(shù)2023/11/21MATLAB在通信中的應用85二維圖形繪制例【例】>>x=1:10;>>y=rand(10,1);>>bar(x,y)>>subplot(2,1,2)>>x=[111234353658595480818283848586];>>hist(x)barhist2023/11/21MATLAB在通信中的應用86二維圖形繪制離散數(shù)據(jù)圖形繪制x=0:0.25:(3*pi);stem(x,sin(x));%stem(x,sin(x),’sr’,’fill’);title('stem(x,sin(x))');xlabel('x');x=0:0.25:(3*pi);%stem(x,sin(x));stem(x,sin(x),’sr’,’fill’);title('stem(x,sin(x))');xlabel('x');2023/11/21MATLAB在通信中的應用87MATLAB提供的統(tǒng)計分析繪圖函數(shù)還有很多,例如,用來表示各元素占總和的百分比的餅圖、復數(shù)的相量圖等等。例5-14繪制圖形:(1)某企業(yè)全年各季度的產(chǎn)值(單位:萬元)分別為:2347,1827,2043,3025,試用餅圖作統(tǒng)計分析。(2)繪制復數(shù)的相量圖:7+2.9i、2-3i和-1.5-6i。2023/11/21MATLAB在通信中的應用88程序如下:subplot(1,2,1);pie([2347,1827,2043,3025]);title('餅圖');legend('一季度','二季度','三季度','四季度');subplot(1,2,2);compass([7+2.9i,2-3i,-1.5-6i]);title('相量圖');2023/11/21MATLAB在通信中的應用89(二)fill

––––基本二維繪圖函數(shù)

fill的功能:繪制二維多邊形并填充顏色例:x=[12345];y=[41514];fill(x,y,'r')2023/11/21MATLAB在通信中的應用90例,繪制階梯曲線x=0:pi/20:2*pi;y=sin(x);stairs(x,y)2023/11/21MATLAB在通信中的應用91例:階梯繪圖h2=[11;1-1];h4=[h2h2;h2-h2];h8=[h4h4;h4-h4];t=1:8;subplot(8,1,1);stairs(t,h8(1,:));axis('off')subplot(8,1,2);stairs(t,h8(2,:));axis('off')subplot(8,1,3);stairs(t,h8(3,:));axis('off')subplot(8,1,4);stairs(t,h8(4,:));axis('off')subplot(8,1,5);stairs(t,h8(5,:));axis('off')subplot(8,1,6);stairs(t,h8(6,:));axis('off')subplot(8,1,7);stairs(t,h8(7,:));axis('off')subplot(8,1,8);stairs(t

溫馨提示

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

評論

0/150

提交評論