Matlab 的數(shù)據(jù)結(jié)構(gòu)與運(yùn)算
數(shù)據(jù)結(jié)構(gòu)與運(yùn)算
1 基本數(shù)據(jù)結(jié)構(gòu)
(1) 常量、變量與賦值語(yǔ)句
在MATLAB中,變量名區(qū)分大小寫(xiě)、不超過(guò)31位、不能有中文(包括文件名)、系統(tǒng)自動(dòng)根據(jù)所賦予變量的值或?qū)ψ兞窟M(jìn)行的操作來(lái)確定變量的類(lèi)型。常量是計(jì)算機(jī)中不變的量,如i、j、pi、NaN、Inf等,常量可任意調(diào)用。
表A-7 MATLAB的部分特殊變量和常量
特殊變量和常量 | 說(shuō) 明 |
ans | 如果沒(méi)指定輸出到一個(gè)變量,系統(tǒng)自動(dòng)創(chuàng)建ans,存儲(chǔ)輸出結(jié)果 |
eps | 計(jì)算機(jī)的浮點(diǎn)運(yùn)算誤差限,即相對(duì)精度 |
pi | π,3.14159265358979……,返回圓周率的近似值 |
i,j | 基礎(chǔ)的敘述單元 |
inf | 返回IEEE算法的正無(wú)窮大量,如n/0即產(chǎn)生inf(其中Nwei 實(shí)數(shù)) |
NaN | 返回IEEE算法的非數(shù)值,如0/0或inf/inf,關(guān)于NaN的算術(shù)運(yùn)算等 |
MATLAB的賦值語(yǔ)句有兩種結(jié)構(gòu),見(jiàn)表A-8。
表A-8 Matlab 賦值語(yǔ)句結(jié)構(gòu)
類(lèi)型 | 基本結(jié)構(gòu) | 舉例 |
直接賦值語(yǔ)句 | 賦值變量=賦值表達(dá)式 | b=2*a |
函數(shù)調(diào)用語(yǔ)句 | [返回變量列表]=函數(shù)名(輸入變量列表) | [U,S,V]=svd(x,y) |
(2) 矩陣
矩陣是MATLAB數(shù)據(jù)存儲(chǔ)的基本單元,而矩陣的運(yùn)算是MATLAB語(yǔ)言的核心,在MATLAB語(yǔ)言系統(tǒng)中幾乎一切運(yùn)算均是以對(duì)矩陣的操作為基礎(chǔ)的。
矩陣是MATLAB的基本變量單位,矩陣元素用方括號(hào)“[]”括住,每行內(nèi)的元素間用逗號(hào)“,”或空格隔開(kāi),行與行之間用分號(hào)“;”或回車(chē)鍵隔開(kāi),矩陣的元素可以是數(shù)值或表達(dá)式。例如:
矩陣的創(chuàng)建有直接輸入、外部文件讀入法、函數(shù)的生成等方式。對(duì)于一些比較特殊的矩陣(單位陣、矩陣中含1或0較多),由于其具有特殊的結(jié)構(gòu),MATLAB提供了一些函數(shù)用于生成這些矩陣。常用的如表A-9 所示。
表A-9 特殊矩陣生成函數(shù)
zeros(m) | 生成m階全0矩陣 | eye(m) | 生成m階單位矩陣 |
ones(m) | 生成m階全1矩陣 | rand(m) | 生成m階均勻分布的隨機(jī)陣 |
(3) 多維數(shù)組
MATLAB提供了一個(gè)cat()函數(shù)來(lái)構(gòu)造多維數(shù)組,該函數(shù)格式為:
A=cat(n,A1,A2,…,Am)
其中,n=1和n=2時(shí)分別構(gòu)造[A1;A2;…;Am]和[A1,A2,…,Am],結(jié)果是二維數(shù)組,而n=3可以構(gòu)造出三維數(shù)組。
2 矩陣運(yùn)算
矩陣運(yùn)算是Matlab的重要特色之一,以下主要介紹矩陣的基本運(yùn)算。
(1) 矩陣代數(shù)運(yùn)算
Matlab中常用的矩陣代數(shù)運(yùn)算有加、減 、乘、 除和冪。
表A-10 矩陣基本運(yùn)算符及其意義
符號(hào) | 意義 | 符號(hào) | 意義 | 符號(hào) | 意義 | 符號(hào) | 意義 | 符號(hào) | 意義 |
+ | 矩陣相加 | - | 矩陣相減 | ^ | 矩陣冪 | .^ | 矩陣乘方 | / | 矩陣右除 |
* | 矩陣叉乘 | .* | 矩陣點(diǎn)乘 | \ | 矩陣左除 | .\ | 矩陣左點(diǎn)除 | ./ | 矩陣右點(diǎn)除 |
(2) 矩陣邏輯運(yùn)算
邏輯運(yùn)算是MATLAB中數(shù)組運(yùn)算所特有的一種運(yùn)算形式,也是幾乎所有的高級(jí)語(yǔ)言普遍適用的一種運(yùn)算。它們分別是&(邏輯與)、|(邏輯或)和~(邏輯非)。
(3) 矩陣比較運(yùn)算
表A-11 矩陣的比較運(yùn)算符及其意義
運(yùn)算符 | 意義 | 運(yùn)算符 | 意義 |
= = | 等于 | > | 大于 |
~ = | 不等于 | <= | 小于等于 |
< | 小于 | >= | 大于等于 |
圖形繪制
MATLAB還擁有大量簡(jiǎn)單、靈活、易用的二維和三維圖形繪制命令以及豐富的圖形表現(xiàn)能力,通過(guò)對(duì)圖形的線型、顏色、光線、視角等設(shè)置和處理,將計(jì)算結(jié)果更好的標(biāo)示出來(lái)。
1 二維繪圖
下面具體描述繪制二維圖形的一般步驟及典型指令。首先,二維數(shù)據(jù)準(zhǔn)備:
l 選定所要表現(xiàn)的范圍
l 產(chǎn)生自變量采樣向量
l 計(jì)算相應(yīng)的函數(shù)值向量
>> t = pi*(0:100)/100; %自變量
>> y = sin(t).*sin(9*t); %函數(shù)值
選定圖形窗及子圖位置:
l 默認(rèn)打開(kāi)figure No.1,或當(dāng)前窗、當(dāng)前子圖
l 可用指令指定圖形窗號(hào)和子圖號(hào)
>> figure(1) %指定1號(hào)窗口
>> subplot(2,2,3) %指定3號(hào)子圖
調(diào)用(高層)繪圖指令:線型、色彩、數(shù)據(jù)點(diǎn)型
>> plot(t, y, ’b-’) %用藍(lán)色實(shí)線畫(huà)圖
設(shè)置軸的范圍和刻度、坐標(biāo)分格線:
>> axis([0,pi,-1,1]) %軸范圍
>> grid on %坐標(biāo)分格線
圖形注釋?zhuān)簣D名、坐標(biāo)名、圖例、文字說(shuō)明
>> title(‘調(diào)制波形’) %圖名
>> xlabel(‘t’); %x軸名
>> ylabel(‘y’); %y軸名
>> legend(‘sin(t)sin(9t)’); %圖例
>> text(2,1,’y=sin(t)shi(9t)’); %文字說(shuō)明
最后,可以對(duì)圖形進(jìn)行精細(xì)修飾(即圖柄操作):
l 利用對(duì)象屬性值設(shè)置
l 利用圖形窗工具條操作
>> set(h,’MarkSize’,10) %數(shù)據(jù)點(diǎn)大小
【例1】繪制正弦曲線y=sin(x),結(jié)果如圖A-6所示。
>> x1=0:0.1:2*pi; %x1的范圍為0~2π,步長(zhǎng)為0.1
>> y1=sin(x1); %y1為x1的正弦函數(shù)
>>plot(x1,y1); %繪制2維圖形
>> axis([0 4 0 2]) %將坐標(biāo)軸范圍設(shè)定為0~4和0~2
2 三維繪圖
首先,三維曲線繪圖函數(shù)plot3進(jìn)行說(shuō)明。
【例2】三維曲線繪圖,如圖A-7所示。
>> x=0:0.1:20*pi;
>> plot3(x,sin(x),cos(x)) %按系統(tǒng)默認(rèn)設(shè)置
除了三維曲線繪圖,還有三維曲面、立體繪圖等,下面的表A-12給出了三維繪圖的一般步驟和典型指令。
表A-12 繪制三維圖形的步驟及典型指令
序號(hào) | 步驟 | 典型指令 |
1 | 三維曲線數(shù)據(jù)準(zhǔn)備: l 先取一個(gè)參變量采樣向量 l 計(jì)算各坐標(biāo)數(shù)據(jù)向量 | t = t0:dt:t1; x=f(t);y=f2(2);z=f3(t); |
三維曲面數(shù)據(jù): l 產(chǎn)生自變量采樣向量 l 產(chǎn)生自變量格點(diǎn)矩陣 l 計(jì)算格點(diǎn)矩陣相應(yīng)的函數(shù)值矩陣 | x=x0:dx:x1; y=y0:dy:y1; [x, y]=meshgrid(x, y); Z=f(x, y); | |
2 | 選定圖形窗及子圖位置 | figure、subplot |
3 | 調(diào)用三維曲線繪圖指令:線型、色彩、數(shù)據(jù)點(diǎn)型 | plot3(x, y, z,’b-’) |
調(diào)用三維曲面繪圖指令 | mesh(X, Y, Z) | |
4 | 設(shè)置軸的范圍和刻度、坐標(biāo)分格線 | axis([x0,x1,y0, y1, z0, z1]) grid on |
5 | 圖形注釋?zhuān)簣D名、坐標(biāo)名、圖例、文字說(shuō)明 | xlabel、ylabel、zlabel、 title、legend、text |
6 | 著色、明暗、燈光、材質(zhì)處理 | colormap、shading、light、material |
7 | 圖形的精細(xì)修飾(圖柄操作) | set,get |