做 在線觀看免費(fèi)網(wǎng)站哈爾濱最新消息
目錄
- 前言
- 一、MATLAB基本操作
- 1.1 界面簡介
- 1.2 搜索路徑
- 1.3 交互式命令操作
- 1.4 幫助系統(tǒng)
- 二、MATLAB語言基礎(chǔ)
- 2.1 數(shù)據(jù)類型
- 2.2 MATLAB運(yùn)算
- 2.2.1 算數(shù)運(yùn)算
- 2.2.2 關(guān)系運(yùn)算
- 2.2.3 邏輯運(yùn)算
- 2.3 常用內(nèi)部函數(shù)
- 2.4 結(jié)構(gòu)數(shù)據(jù)與單元數(shù)據(jù)
- 三、MATLAB程序設(shè)計(jì)
- 3.1 M文件
- 3.2 函數(shù)文件
- 3.3 程序控制結(jié)構(gòu)
- 3.3.1 循環(huán)結(jié)構(gòu)
- 3.3.2 選擇結(jié)構(gòu)
- 3.3.3 流程控制語句
- 3.4 文件操作
- 3.5 程序調(diào)試與優(yōu)化
- 四、矩陣運(yùn)算
- 4.1 矩陣的表示
- 4.2 矩陣的代數(shù)運(yùn)算
- 4.3 稀疏矩陣
- 五、數(shù)值運(yùn)算
- 5.1 多項(xiàng)式計(jì)算
- 5.2 插值與擬合
- 5.3 數(shù)值微積分
- 5.4 方程數(shù)值
- 5.5 數(shù)據(jù)統(tǒng)計(jì)分析
- 六、符號運(yùn)算
- 6.1 符號計(jì)算基礎(chǔ)
- 6.2 符號微積分
- 6.3 方程符號
- 七、數(shù)據(jù)可視化
- 7.1 二維圖形
- 7.2 三維圖形
- 7.3 圖像處理
- 7.4 繪圖工具簡介
- 八、Simulink系統(tǒng)仿真
- 8.1 Simulink基本操作
- 8.2 系統(tǒng)仿真的建立與分析
- 8.3 子系統(tǒng)的創(chuàng)建與仿真
- 8.4 S函數(shù)的設(shè)計(jì)與應(yīng)用
- 補(bǔ)充
前言
??MATLAB是1984年由美國MathWorks公司推出,一種交互式的以矩陣為基礎(chǔ)的系統(tǒng)計(jì)算平臺(tái),它用于科學(xué)和工程的計(jì)算與可視化。本文以MATLAB2023a為例,主要介紹MATLAB的常規(guī)使用,如數(shù)值計(jì)算、符號計(jì)算、數(shù)據(jù)可視化與SIMULINK動(dòng)態(tài)仿真功能。本文不對GUI功能介紹
一、MATLAB基本操作
1.1 界面簡介
??打開MATLAB,主要會(huì)有以下幾個(gè)區(qū)域。如果窗口消失可以點(diǎn)擊主頁->布局->默認(rèn),來恢復(fù)
序號 | 名稱 | 功能 |
---|---|---|
① | 菜單欄 | |
② | 當(dāng)前文件夾 | 即工作空間路徑 |
③ | 編輯器 | 可以進(jìn)行腳本編輯 |
④ | 命令行窗口 | 敲命令的地方 |
⑤ | 工作區(qū) | 可以查看執(zhí)行的變量 |
1.2 搜索路徑
??當(dāng)用戶在MATLAB命令窗口輸入一條命令后,MATLAB按照一定次序?qū)ふ蚁嚓P(guān)的文件。用戶可以將自己的工作目錄列入MATLAB搜索路徑,從而將用戶目錄納入MATLAB系統(tǒng)統(tǒng)一管理。設(shè)置搜索路徑的方法有:
- 用path命令設(shè)置搜索路徑。例如,將用戶目錄d:\mydir加到搜索路徑下,可在命令窗口輸入命令:
path(path,’d:\mydir’)
- 用對話框設(shè)置搜索路徑。點(diǎn)擊主頁->環(huán)境->設(shè)置路徑命令按鈕,或窗口執(zhí)行
pathtool
命令,將出現(xiàn)“設(shè)置路徑”對話框,如圖:
1.3 交互式命令操作
??命令行以Enter鍵
結(jié)束,但是一行也可以輸入多條命令。命令之間用,
分隔,如果用;
分隔或者結(jié)尾,則不會(huì)運(yùn)行。如果命令太長需要換行,可以在第一行末尾添加...
,再按Enter鍵
換行。在MATLAB命令后面可以用%添加注釋。如下:
>> a=1,b=2;c=...
4%注釋
??命令窗的常用控制指令:
指令 | 含義 | 指令 | 含義 |
---|---|---|---|
cd | 設(shè)置當(dāng)前工作目錄 | exit | 關(guān)閉/退出 MATLAB |
clf | 清除圖形窗 | quit | 關(guān)閉/退出 MATLAB |
clc | 清除指令窗中顯示內(nèi)容 | more | 使其后的顯示內(nèi)容分頁進(jìn)行 |
clear | 清除MATLAB工作空間中保存的變量 | return | 返回到上層調(diào)用程序;結(jié)束鍵盤模式 |
dir | 列出指定目錄下的文件和子目錄清單 | type | 顯示指定M文件的內(nèi)容 |
edit | 打開M文件編輯器 | which | 指出其后文件所在的目錄 |
??命令行編輯常用按鍵:
鍵名 | 功能 | 鍵名 | 功能 |
---|---|---|---|
↑ \uparrow ↑ | 前尋式調(diào)回已輸入過的命令 | PgUp | 前尋式翻滾一頁 |
↓ \downarrow ↓ | 后尋式調(diào)回已輸入過的命令 | PgDn | 后尋式翻滾一頁 |
← \leftarrow ← | 在當(dāng)前行中左移光標(biāo) | Home | 將光標(biāo)移到當(dāng)前行首端 |
→ \rightarrow → | 在當(dāng)前行中右移光標(biāo) | End | 將光標(biāo)移到當(dāng)前行未尾 |
Del | 刪除光標(biāo)右邊的字符 | Backspace | 刪除光標(biāo)左邊的字符 |
Esc | 刪除當(dāng)前行的全部內(nèi)容 | Ctrl+C | 中斷一個(gè)MATLAB任務(wù) |
1.4 幫助系統(tǒng)
??點(diǎn)擊主頁->按鈕?,或者在命令行輸入doc
,打開幫助窗口,可以搜索和查看所有的幫助文檔,還能運(yùn)行有關(guān)的演示程序。還可以使用help
與lookfor
兩個(gè)命令
- help命令可以顯示該函數(shù)的幫助說明
>> help magic
- lookfor命令可以進(jìn)行關(guān)鍵字搜索
>> lookfor inverse
二、MATLAB語言基礎(chǔ)
2.1 數(shù)據(jù)類型
- 整型
??這個(gè)學(xué)過C語言的很好理解,無符號就是不帶負(fù)數(shù),后面的數(shù)字就是位數(shù) - 浮點(diǎn)型
??與C語言一樣,有單精度single
與雙精度double
之分,單精度在內(nèi)存中占4個(gè)字節(jié),雙精度占8個(gè)字節(jié) - 常量與變量
??常量是程序語句中取不變值的那些量,變量是在程序運(yùn)行中其值可以改變的量。常用預(yù)定義變量:
符號 | 含義 | 符號 | 含義 |
---|---|---|---|
ans | 計(jì)算結(jié)果的默認(rèn)賦值變量 | nargin | 函數(shù)輸入?yún)?shù)個(gè)數(shù) |
eps | 容差變量 | nargout | 函數(shù)輸出參數(shù)個(gè)數(shù) |
pi | 圓周率 | realmin | 最小浮點(diǎn)數(shù) |
i、j | 虛數(shù) | realmax | 最大浮點(diǎn)數(shù) |
inf | 無窮大 | lasterr | 存放最新的錯(cuò)誤信息 |
nan | 不定式,表示非數(shù)值量 | lastwarn | 存放最新的警告信息 |
- 字符串
??字符串是用單引號括起來的字符序列,MATLAB將字符串當(dāng)作一個(gè)行向量,每個(gè)元素對應(yīng)一個(gè)字符。注意,如果字符串里有單引號則需要兩個(gè)單引號表示。
>> ch='ABc123d4e56Fg9';
>> length(ch) %統(tǒng)計(jì)個(gè)數(shù)
2.2 MATLAB運(yùn)算
2.2.1 算數(shù)運(yùn)算
運(yùn) 算 符 | 名 稱 | 示 例 | 法則或使用說明 |
---|---|---|---|
+ | 加 | C=A+B | 矩陣加法法則,即 C(i,j)=A(i,j)+B(i,j) |
? | 減 | C=A-B | 矩陣減法法則,即 C(i,j)=A(i,j)-B(i,j) |
? * ? | 乘 | C=A*B | 矩陣乘法法則 |
/ | 右除 | C=A/B | 定義為線性方程組 XB=A 的解,即 C=A/B= AB-1 |
\ | 左除 | C=A\B | 定義為線性方程組 AX=B 的解,即 C=A\B= A-1B |
^ | 乘冪 | C=A^B | A、B 其中一個(gè)為標(biāo)量時(shí)有定義 |
’ | 共軛轉(zhuǎn)置 | B=A’ | B 是 A 的共軛轉(zhuǎn)置矩陣 |
.* | 數(shù)組乘 | C=A.*B | C(i,j)=A(i,j)*B(i,j) |
./ | 數(shù)組右除 | C=A./B | C(i,j)=A(i,j)/B(i,j) |
.\ | 數(shù)組左除 | C=A.\B | C(i,j)=B(i,j)/A(i,j) |
.^ | 數(shù)組乘冪 | C=A.^B | C(i,j)=A(i,j)^B(i,j) |
.’ | 轉(zhuǎn)置 | A.’ | 將數(shù)組的行擺放成列,復(fù)數(shù)元素不做共軛 |
2.2.2 關(guān)系運(yùn)算
運(yùn)算符 | 名稱 | 示 例 |
---|---|---|
< | 小于 | A<B |
<= | 小于等于 | A<=B |
> | 大于 | A>B |
>= | 大于等于 | A>=B |
== | 恒等于 | A==B |
~= | 不等于 | A~=B |
2.2.3 邏輯運(yùn)算
運(yùn)算符 | 名 稱 | 示 例 |
---|---|---|
& | 與 | A&B |
| | 或 | A|B |
~ | 非 | ~A |
&& | 先決與 | A&&B |
|| | 先決或 | A||B |
2.3 常用內(nèi)部函數(shù)
??函數(shù)最一般的引用格式是:函數(shù)名(參數(shù) 1,參數(shù) 2,…)
- 常用數(shù)學(xué)函數(shù)
函數(shù)符號 | 名稱或功能 | 函數(shù)符號 | 名稱或功能 |
---|---|---|---|
sin | 正弦 | sinh/asinh | 雙曲正弦/反雙曲正弦 |
cos | 余弦 | cosh/acosh | 雙曲余弦/反雙曲余弦 |
tan | 正切 | tanh/atanh | 雙曲正切/反雙曲正切 |
asin | 反正弦 | log2 | 以 2 為底的對數(shù) |
acos | 反余弦 | ln | 以 e 為底的對數(shù) |
atan | 反正切 | sign | 符號函數(shù) |
abs | 求絕對值或復(fù)數(shù)的模 | log10 | 以 10 為底的對數(shù) |
sqrt | 開平方 | round | 四舍五入并取整 |
angle | 求復(fù)數(shù)相角 | fix | 向最接近 0 方向取整 |
real | 求復(fù)數(shù)實(shí)部 | floor | 向接近-∞方向取整 |
imag | 求復(fù)數(shù)虛部 | ceil | 向接近+∞方向取整 |
conj | 求復(fù)數(shù)的共軛 | rem(a,b) | 求 a/b 的有符號余數(shù) |
exp | 自然指數(shù) | mod(c,m) | 求 c/m 的正余數(shù) |
rem | 求余 | mod | 求模 |
factorial | 階乘 | randperm | 生成任意排列 |
- 關(guān)系運(yùn)算函數(shù)
函數(shù) | 含義 |
---|---|
all | 若向量的所有元素非零,則結(jié)果為1,否則為0 |
any | 若向量中任何一個(gè)元素非零,則結(jié)果為1,否則為0 |
exist | 檢查變量在工作空間中是否存在,若存在,則結(jié)果為1,否則為0 |
find | 找出向量或矩陣中非零元素的位置 |
isempty | 若被查變量是空矩陣,則結(jié)果為1,否則為0 |
isinf | 若元素是±inf,則結(jié)果矩陣相應(yīng)位置元素取1,否則取0 |
isnan | 若元素是 nan,則結(jié)果矩陣相應(yīng)位置元素取1,否則取0 |
isfinite | 若元素值大小有限,則結(jié)果矩陣相應(yīng)位置元素取1,否則取0 |
isinteger | 若被查變量是整型,則取 1,否則取 0 |
isnumeric | 若被查變量是數(shù)值型,則取1,否則取0 |
isreal | 若被查變量是實(shí)數(shù),則取1,否則取0 |
isfloat | 若被查變量是浮點(diǎn)型,則取1,否則取0 |
>> A=[4,-65,-54,0,6;56,0,67,-45,0];
>> k=find(A>4)
2.4 結(jié)構(gòu)數(shù)據(jù)與單元數(shù)據(jù)
- 結(jié)構(gòu)數(shù)據(jù)
??結(jié)構(gòu)數(shù)據(jù)類型吧一組類型不同而邏輯上相關(guān)的數(shù)據(jù)組成一個(gè)有機(jī)的整體,類似C語言結(jié)構(gòu)體,相關(guān)函數(shù)如下:
函 數(shù) | 功 能 |
---|---|
struct | 創(chuàng)建結(jié)構(gòu)數(shù)組 |
isstruct | 判定是否為結(jié)構(gòu)數(shù)組,若是,其值為真 |
fieldnames | 獲取結(jié)構(gòu)數(shù)組域名 |
setfield | 設(shè)定域值 |
getfield | 獲取域值 |
isfield | 判定是否在結(jié)構(gòu)數(shù)組中,若是,其值為真 |
rmfield | 刪除結(jié)構(gòu)數(shù)組中的域 |
orderfield | 域排序 |
%格式:結(jié)構(gòu)矩陣元素.成員名=表達(dá)式
>> student(2).number='20050731026';
- 單元數(shù)據(jù)
??與結(jié)構(gòu)數(shù)據(jù)類似,不同的是結(jié)構(gòu)矩陣各個(gè)元素下有成員,每個(gè)成員有自己的名字
函 數(shù) | 功 能 |
---|---|
celldisp | 顯示細(xì)胞數(shù)組所有元素的內(nèi)容 |
iscell | 判定是否為細(xì)胞數(shù)組,若是為真 |
iscellstr | 判定是否為字符型細(xì)胞數(shù)組,若是為真 |
cellstr | 將字符型數(shù)組轉(zhuǎn)換成字符型細(xì)胞數(shù)組 |
char | 將字符型細(xì)胞數(shù)組轉(zhuǎn)換成字符型數(shù)組 |
cell2struct | 將細(xì)胞數(shù)組轉(zhuǎn)換成結(jié)構(gòu)數(shù)組 |
struct2cell | 將結(jié)構(gòu)數(shù)組轉(zhuǎn)換成細(xì)胞數(shù)組 |
mat2cell | 將普通數(shù)組轉(zhuǎn)換成細(xì)胞數(shù)組 |
cell2mat | 將細(xì)胞數(shù)組轉(zhuǎn)換成普通數(shù)組 |
num2cell | 將數(shù)值數(shù)組轉(zhuǎn)換成細(xì)胞數(shù)組 |
>> b = {10,'liu',[11,21];11,'li',[13,24]}
三、MATLAB程序設(shè)計(jì)
3.1 M文件
??M文件就是以.m
為擴(kuò)展名的文本文件,它有兩種類型:腳本(Script)和函數(shù)文件(Function),主要區(qū)別如下:
- 腳本文件沒有輸入?yún)?shù),也不返回輸出參數(shù),而函數(shù)文件可以帶輸入?yún)?shù),也可返回輸出參數(shù)。
- 腳本文件對 MATLAB 工作空間中的變量進(jìn)行操作,文件中所有命令的執(zhí)行結(jié)果也完全返回到工作空間中,而函數(shù)文件中定義的變量為局部變量,當(dāng)函數(shù)文件執(zhí)行完畢時(shí),這些變量被清除。
- 腳本文件可以直接運(yùn)行,在 MATLAB 命令行窗口輸入腳本文件的名字,就會(huì)順序執(zhí)行腳本文件中的命令,而函數(shù)文件不能直接運(yùn)行,要以函數(shù)調(diào)用的方式來調(diào)用它。
-
M文件的創(chuàng)建
方式一:點(diǎn)擊主頁->新建
方式二:命令行輸入edit 文件名
-
M文件的調(diào)用
??以腳本文件為例,輸入以下內(nèi)容并保存為exch.m文件
clear;
a=1:10;
b=[11,12,13,14;15,16,17,18];
c=a;a=b;b=c;
a
b
??然后在命令行輸入exch,MATLAB就會(huì)自動(dòng)運(yùn)行腳本。注意搜索路徑的配置
3.2 函數(shù)文件
- 基本結(jié)構(gòu)與調(diào)用
??函數(shù)文件由function
語句引導(dǎo),結(jié)構(gòu)如下:
function [輸出形參表]=函數(shù)名(輸入形參表)
%注釋說明
函數(shù)體語句
????調(diào)用格式如下:
[輸出參數(shù)列表]=函數(shù)名(輸入?yún)?shù)列表)
- 全局變量與局部變量
局部變量:存在于函數(shù)空間內(nèi)部的中間變量,產(chǎn)生于函數(shù)的運(yùn)行過程中,影響范圍也僅限于函數(shù)本身。
全局變量:可定義為不同函數(shù)空間和基本空間共享的同一變量,是函數(shù)間傳遞信息的一種手段。習(xí)慣上將全局變量定義為大寫字母。全局變量用global
定義,格式如下:
global 變量名
- 全局變量應(yīng)用示例
先建立函數(shù)文件wadd.m,該函數(shù)將輸入的參數(shù)加權(quán)相加
function f=wadd(x,y)
global ALPHA BETA
f=ALPHA*x+BETA*y;
??在命令行窗口中輸入命令并得到輸出結(jié)果
>> global ALPHA BETA
>> ALPHA=1;
>> BETA=2;
>> s=wadd(1,2)
3.3 程序控制結(jié)構(gòu)
??程序的控制結(jié)構(gòu)有3種:順序結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和選擇結(jié)構(gòu)。其中順序結(jié)構(gòu)就是指程序里的語句從上往下按順序執(zhí)行。
3.3.1 循環(huán)結(jié)構(gòu)
??MATLAB提供兩種循環(huán)結(jié)構(gòu)語句:for語句與while語句
- for語句
??如果可以確認(rèn)循環(huán)次數(shù)用for循環(huán),格式如下:
for 循環(huán)遍歷=表達(dá)式1:表達(dá)式2:表達(dá)式3循環(huán)體語句
end
- 表達(dá)式1的值為循環(huán)控制變量的初值;
- 表達(dá)式2的值為步長,省略時(shí),步長為1;
- 表達(dá)式3為循環(huán)控制變量的終值。
- while語句
??while語句通過判斷循環(huán)條件是否滿足來決定是否繼續(xù)的循環(huán)結(jié)構(gòu),格式如下:
while 條件循環(huán)體語句
end
3.3.2 選擇結(jié)構(gòu)
??MATLAB實(shí)現(xiàn)條件結(jié)構(gòu)語句:if語句、switch語句和try語句
- if語句
if 條件1語句組
elseif 條件2語句組...
else語句組
end
- switch語句
switch 表達(dá)式case 表達(dá)式1語句1case 表達(dá)式2語句2...case 表達(dá)式n語句notherwise語句n+1
end
- try語句
??try語句為開發(fā)人員提供了一種捕獲錯(cuò)誤的機(jī)制
try語句1
catch語句2
end
3.3.3 流程控制語句
- break語句:終止本層for或while循環(huán),跳轉(zhuǎn)到本層循環(huán)結(jié)束語句end的下一條語句
- continue語句:跳過其后的循環(huán)體語句,進(jìn)行下一次循環(huán)
- return語句:終止被調(diào)用函數(shù)的運(yùn)行,返回到調(diào)用函數(shù)
- pause語句:
- pause:暫停程序運(yùn)行,按任意鍵繼續(xù)
- pause(n):程序暫停運(yùn)行n秒后繼續(xù)
- pause on/off:允許/禁止其后的程序暫停
3.4 文件操作
- 常用的數(shù)據(jù)輸入輸出函數(shù)如下:
函 數(shù) | 功 能 |
---|---|
input | 鍵盤輸入語句 |
disp | 屏幕輸出語句 |
save/load | M數(shù)據(jù)文件的存儲(chǔ)/加載 |
fprintf/fscanf | 格式化文本文件的存儲(chǔ)/讀取 |
fwrite/fread | 二進(jìn)制數(shù)據(jù)文件的存儲(chǔ)/讀取 |
fgetl/fgets | 數(shù)據(jù)文件行存儲(chǔ)/讀取 |
format | 數(shù)據(jù)輸出格式 |
- 文件操作函數(shù)
3.5 程序調(diào)試與優(yōu)化
- 程序的調(diào)試
>> help debug
??常用的調(diào)試有:
函數(shù)名 | 作用 |
---|---|
dbstop | 在程序適當(dāng)位置設(shè)置斷點(diǎn) |
dbclear | 清除用dbstop函數(shù)設(shè)置的斷點(diǎn) |
dbcont | 從斷點(diǎn)處恢復(fù)程序的執(zhí)行 |
dbstep | 執(zhí)行多行語句后返回調(diào)試模式 |
dbquit | 退出調(diào)試模式 |
??也可以利用調(diào)試工具,打開.m文件時(shí),在編輯器->運(yùn)行/繼續(xù)里可以對斷點(diǎn)進(jìn)行操作,也可以點(diǎn)擊前面序號設(shè)置/清除斷點(diǎn)
- 程序性能分析
??可以利用探查器(Profiler)、tic函數(shù)和toc函數(shù)來分析程序各環(huán)節(jié)的耗時(shí)情況。在命令窗口輸入以下命令:
>> profile on
文件名
>> profile viewer
- 程序優(yōu)化
(1)采用向量化運(yùn)算
(2)預(yù)分配內(nèi)存空間
(3)減少運(yùn)算強(qiáng)度
四、矩陣運(yùn)算
4.1 矩陣的表示
??矩陣的所有元素必須放在方括號([])內(nèi),同行的元素之間需用逗號或空格隔開, 矩陣的行與行之間用分號或回車符分隔;
- 矩陣的建立
- 直接輸入法
>> A=[1 2 3;4 5 6]
- 拼接法
>> A=[1 2 3;4 5 6;7 8 9];B=[9 8;7 6;5 4];
>> E=[A,B]
- 抽取法
>> A=[1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16];
>> B=A(1:3,2:3); %取矩陣A行數(shù)為1~3,列數(shù)為2~3元素構(gòu)成子矩陣
>> C=A([1 3],[2 4]); %取矩陣A行數(shù)為1、3,列數(shù)為2、4元素構(gòu)成子矩陣
- 函數(shù)法
函 數(shù) | 功 能 |
---|---|
rand(m,n) | 生成取值在0~1之間滿足均勻分布的隨機(jī)矩陣 |
randn(m,n) | 生成滿足正態(tài)分布的隨機(jī)矩陣 |
zeros(m,n) | 生成 m×n 階的全 0 矩陣 |
ones(m,n) | 生成 m×n 階的全 1 矩陣 |
eye(m,n) | 生成 m×n 階的單位矩陣 |
magic(n) | 生成魔方就診 |
vander([a,b,c…]) | 生成范德蒙矩陣 |
hilb(n)/invhilb(n) | 希爾伯特矩陣的生成和求逆 |
toeplitz(x,y) | 托普利茲矩陣 |
compan§ | 多項(xiàng)式p的伴隨矩陣 |
pascal(n) | 帕斯卡矩陣 |
- 拼接函數(shù)和變形函數(shù)法
cat函數(shù)的使用格式是:cat(n,A1,A2,A3,…),
??n=1時(shí),表示沿行方向拼接;
??n=2時(shí),表示沿列方向拼接。
repmat函數(shù)的使用格式是:repmat(A,m,n…),
??m和n分別是沿行和列方向重復(fù)拼接矩陣A的次數(shù)。
變形函數(shù)reshape格式:reshape(A,m,n)
- 向量
- 向量包括行向量和列向量。一個(gè)n維的行向量是一個(gè)1×n階的矩陣,而列向量則當(dāng)成n×1階的矩陣。利用冒號表達(dá)式可以創(chuàng)建向量,創(chuàng)建從n1開始,步長為step,n2結(jié)束的行向量格式如下:
x = n1:step:n2
- 還可以使用
linspace
函數(shù)產(chǎn)生行向量,創(chuàng)建從n1開始,到n2結(jié)束,有n個(gè)元素的線性分隔行向量,格式如下:
x=linspace(n1,n2,n)
- 矩陣元素的引用
??矩陣元素通過下標(biāo)引用,如**A(3,2)**表示A矩陣第3行第2列。其他相關(guān)函數(shù)如下:
函數(shù) | 作用 |
---|---|
size | 返回矩陣各方向的長度 |
length | 返回矩陣各方向中的最長長度 |
sub2ind/ind2sub | 轉(zhuǎn)換矩陣的序號與下標(biāo) |
reshape | 將矩陣組成其他排列的二維矩陣 |
4.2 矩陣的代數(shù)運(yùn)算
??矩陣的算數(shù)運(yùn)算就是使用2.2.1小節(jié)的算術(shù)運(yùn)算符,本小節(jié)主要介紹矩陣相關(guān)函數(shù)
- 矩陣變換
函數(shù) | 作用 |
---|---|
diag(A) | 產(chǎn)生對角陣 |
triu(A)/tril(a) | 取上下三角陣 |
A.'/transpose(A) | 非共軛矩陣轉(zhuǎn)置 |
A’/conj(A).‘/conj(A.’) | 共軛轉(zhuǎn)置(實(shí)矩陣與非共軛沒區(qū)別) |
rot90(A,k) | 將矩陣A逆時(shí)針旋轉(zhuǎn)90° |
fliplr(A) | 將矩陣A左右翻轉(zhuǎn) |
flipud(A) | 矩陣上下翻轉(zhuǎn) |
inv(A) | 求A的逆矩陣 |
pinv(A) | 廣義逆矩陣 |
- 矩陣求值
函數(shù) | 作用 |
---|---|
det(A) | A矩陣對應(yīng)行列式的值 |
rank(A) | 矩陣的秩 |
trace(A) | 矩陣的跡 |
norm(V,1) | V的1-范數(shù) |
norm(V)/norm(V,2) | V的2-范數(shù) |
norm(V,inf) | V的∞范數(shù) |
cond(A) | A的條件數(shù) |
[X,λ]=eig(A) | X為A的特征向量,λ為A的特征值 |
sqrtm(A) | 矩陣的開方運(yùn)算 |
expm(A) | 指數(shù)運(yùn)算 |
logm(A) | 對數(shù)運(yùn)算 |
4.3 稀疏矩陣
??一個(gè)m×n的矩陣完全存儲(chǔ)需要占據(jù)很大的空間,此時(shí)如果該矩陣含有大量零元素和少量非零元素,就可以用稀疏存儲(chǔ)方式,設(shè)
A = [ 1 0 0 0 0 4 0 0 2 0 0 7 ] A= \begin{bmatrix} 1 & 0 &0&0 \\ 0 & 4&0&0 \\2&0&0&7 \end{bmatrix} A= ?102?040?000?007? ?
??則A的稀疏存儲(chǔ)方式:(1,1),1,(3,1),2,(2,2),4,(3,4),7
- sparse創(chuàng)建稀疏矩陣
(1)S=sparse(A):將滿矩陣A轉(zhuǎn)化為稀疏矩陣S
(2)S=sparse(m,n):用來產(chǎn)生m×n階全0矩陣
(3)S=sparse(m,n,A):建立一個(gè)m行、n列并以A為稀疏元素的稀疏矩陣 - spdiags創(chuàng)建對角稀疏矩陣
(1)[B,d]=spdiags(A):從m×n階矩陣A中抽取所有非零對角線上元素。B是min(m,n)×p階矩陣,列向量為A中p個(gè)非零對角線。d是p×1階矩陣,指出A中非零對角線的編號。
(2)B=spdiags(A,d):從m×n階矩陣A中抽取指定編號d的對角線元素。
(3)A=spdiags(B,d,A):用矩陣B的列向量代替矩陣A中被d指定的對角線元素。
(4)A=spdiags(B,d,m,n):用矩陣B的列向量生成m×n階稀疏矩陣A,并放置在d指定的對角線上
五、數(shù)值運(yùn)算
5.1 多項(xiàng)式計(jì)算
5.2 插值與擬合
5.3 數(shù)值微積分
5.4 方程數(shù)值
5.5 數(shù)據(jù)統(tǒng)計(jì)分析
六、符號運(yùn)算
6.1 符號計(jì)算基礎(chǔ)
??符號對象:是一種存儲(chǔ)了符號字符串表示的復(fù)雜數(shù)據(jù)結(jié)構(gòu)。包括符號常量、符號變量、符號表達(dá)式和符號矩陣或數(shù)組。
??MATLAB使用sym
函數(shù)和syms
命令建立符號對象,sym一次只能定義一個(gè)符號變量,syms一次可以定義多個(gè)如:
>> t=sym(2); %定義符號常量t
>> t+1/2>> syms a b pi
>> sin(pi/3)+a*a+b*b
??符號變量的基本運(yùn)算與數(shù)值計(jì)算沒有太多區(qū)別。這里簡單介紹一下相關(guān)函數(shù):
函數(shù) | 功能 |
---|---|
assume | 設(shè)置值域 |
isequaln | 判斷符號對象是否一致 |
numden | 提取符號表達(dá)式的分子和分泌 |
factor | 因式分解 |
expand | 展開符號表達(dá)式 |
collect | 對符號表達(dá)式合并同類項(xiàng) |
coeffs | 提取表達(dá)式系數(shù) |
simplify | 對符號表達(dá)式進(jìn)行簡化 |
eval | 將符號表達(dá)式轉(zhuǎn)成數(shù)值表達(dá)式 |
sym2poly | 將符號多項(xiàng)式轉(zhuǎn)換為多項(xiàng)式系數(shù)向量 |
6.2 符號微積分
- 符號極限
??使用limit(f,x,a)
求當(dāng)變量x趨于a時(shí)f的極限值
>> f=x*(sqrt(x^2+1)-x);
>> limit(f,x,inf,'left') %left表示求左極限
- 其他相關(guān)函數(shù)
函數(shù) | 功能 |
---|---|
diff | 符號微分 |
int | 符號積分 |
taylor | 泰勒展開 |
fourier | 傅里葉變換 |
ifourier | 傅里葉反變換 |
laplace | 拉普拉斯變換 |
ilaplace | 拉普拉斯反變換 |
ztrans | Z變換 |
iztrans | Z反變換 |
6.3 方程符號
solve
代數(shù)方程求解
??solve(s,v)表示求解表達(dá)式s的代數(shù)方程,求解變量是v
{ u 3 + v 3 = 98 u + v = 2 \left\{ \begin{array}{c} u^3 + v^3 =98 \\ u+v=2 \end{array} \right. {u3+v3=98u+v=2?
>> syms u v
>> [u,v]=solve([u^3+v^3-98,u+v-2],[u,v]) %解方程組
dsolve
求解常微分方程
??dsolve(e,c,v)表示常微分方程e在初值條件c下的特解,v是方程自變量
d y d x = x 2 + y 2 2 x 2 \frac{{\rm d}y}{{\rm d}x} = \frac{x^2+y^2}{2x^2} dxdy?=2x2x2+y2?
>> y=dsolve('Dy-(x^2+y^2)/x^2/2','x') %方程的右端為0時(shí)可以不寫
七、數(shù)據(jù)可視化
7.1 二維圖形
7.2 三維圖形
7.3 圖像處理
7.4 繪圖工具簡介
八、Simulink系統(tǒng)仿真
8.1 Simulink基本操作
8.2 系統(tǒng)仿真的建立與分析
8.3 子系統(tǒng)的創(chuàng)建與仿真
8.4 S函數(shù)的設(shè)計(jì)與應(yīng)用
補(bǔ)充
有關(guān)MATLAB其他或者具體信息參考:MATLAB中國官網(wǎng)