matlab之基本繪圖函數(shù)
clear:清空內(nèi)存中的變量; figure:強(qiáng)制生成一個(gè)新的個(gè)繪圖窗口; syms x y t :聲明變量; fplot(函數(shù)表達(dá)式,繪圖區(qū)間); plot(橫坐標(biāo)向量,縱坐標(biāo)向量,顏色/線形等參數(shù)) ezplot(函數(shù)表達(dá)式):簡(jiǎn)單的fplot,easy fplot axis([xmin xmax ymin ymax ...]):設(shè)置坐標(biāo)軸顯示范圍
求極限
limit: 例:limit(F,x,a,left);對(duì)表達(dá)式F求極限,變量為x,從左邊趨近a。 inf:正無(wú)窮; -inf:負(fù)無(wú)窮。
solve,linsolve
例:
A=[5 0 4 2;1 -1 2 1;4 1 2 0;1 1 1 1]; %矩陣的行之間用分號(hào)隔開(kāi),元素之間用逗號(hào)或空格 B=[3;1;1;0] X=zeros(4,1);%建立一個(gè)4元列向量 X=linsolve(A,B)
diff(fun,var,n):對(duì)表達(dá)式fun中的變量var求n階導(dǎo)數(shù)。
例如:F=sym('u(x,y)*v(x,y)'); %sym()用來(lái)定義一個(gè)符號(hào)表達(dá)式 diff(F); %matlab區(qū)分大小寫(xiě) pretty(ans) %pretty():用習(xí)慣書(shū)寫(xiě)方式顯示變量;ans是答案表達(dá)式
fsolve(fun,x0,options) 其中fun為待解方程或方程組的文件名; x0位求解方程的初始向量或矩陣; option為設(shè)置命令參數(shù)
建立文件fun.m: function y=fun(x) y=[x(1)-0.5*sin(x(1))-0.3*cos(x(2)), ... x(2) - 0.5*cos(x(1))+0.3*sin(x(2))];
>>clear;x0=[0.1,0.1];fsolve(@fun,x0,optimset('fsolve'))
注: ...為續(xù)行符 m文件必須以function為文件頭,調(diào)用符為@;文件名必須與定義的函數(shù)名相同;fsolve()主要求解復(fù)雜非線性方程和方程組,求解過(guò)程是一個(gè)逼近過(guò)程。
不定積分:int(fun,var) 例:求∫sinaxsinbxsincxdx
syms a b c x y=sin(a*x)*sin(b*x)*sin(c*x); int(y,x); pretty(ans)
定積分:int(fun,var,a,b) 其中a,b分別為上下限 foll
應(yīng)用到的函數(shù): I=imread('圖像文件名') :讀取圖像數(shù)據(jù),保存在矩陣I中; imshow(I) :顯示灰度圖像I,其他用法見(jiàn)matlab幫助; I2=im2double(I1) :把圖像數(shù)組I1轉(zhuǎn)換成double精度類型; D=dctmtx(n) :二維離散余弦變換函數(shù),返回n*n離散余弦變換矩陣。
一個(gè)n*n的變換矩陣T被定義成: Tpq=1/sqrt(n) ,當(dāng)p=0,0<=q<=M-1; Tpq=sqrt(2/n)*cos[pi*(2q+1)*p/2n] ,當(dāng)1<=p<=M-1,0<=q<=M-1。
B=blkproc(A,[m n],fun,P1,P2...) :塊操作函數(shù)。對(duì)圖像A的每個(gè)不同的m*n塊應(yīng)用fun函數(shù),P1,P2等為fun函數(shù)參數(shù)。在圖像邊緣用0來(lái)擴(kuò)展;只有當(dāng)fun的返回矩陣是m*n矩陣時(shí),B和A的大小才相同。 figure:強(qiáng)制生成一個(gè)新的個(gè)繪圖窗口;
JPEG圖像壓縮算法: 輸入圖像被分成8*8或16*16的小塊,然后對(duì)每一小塊進(jìn)行二維DCT(離散余弦變換)變換,變換后的系數(shù)量化、編碼并傳輸; JPEG文件解碼量化了的DCT系數(shù),對(duì)每一塊計(jì)算二維逆DCT變換,最后把結(jié)果塊拼接成一個(gè)完整的圖像。在DCT變換后舍棄那些不嚴(yán)重影響圖像重構(gòu)的接近0的系數(shù)。 DCT變換的特點(diǎn)是變換后圖像大部分能量集中在左上角,因?yàn)樽笊戏庞吃瓐D像低頻部分?jǐn)?shù)據(jù),右下反映原圖像高頻部分?jǐn)?shù)據(jù)。而圖像的能量通常集中在低頻部分。
實(shí)例程序: function Jpeg I=imread('D:\MATLAB7\toolbox\images\imdemos\cameraman.tif'); %該圖片在安裝matlab的目錄中找,原圖為灰度圖象 I=im2double(I);%圖像存儲(chǔ)類型轉(zhuǎn)換 T=dctmtx(8);%離散余弦變換矩陣 B=blkproc(I,[8 8],'P1*x*P2',T,T'); %對(duì)原圖像進(jìn)行DCT變換 mask=[1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]; B2=blkproc(B,[8 8],'P1.*x',mask); %數(shù)據(jù)壓縮,丟棄右下角高頻數(shù)據(jù) I2=blkproc(B2,[8 8],'P1*x*P2',T',T); %進(jìn)行DCT反變換,得到壓縮后的圖像 imshow(I) title('原始圖像') figure; imshow(I2) title('壓縮后的圖像')
運(yùn)行結(jié)果:
例:求方程組的空間曲線
1。化為參數(shù)方程組 x=t y=sqrt[t(1-t)] z=sqrt[1-x^2-y^2] 2。 程序 t=0:0.001:1; x=t; y=sqrt(t.*(1-t)); z=sqrt(1-x.^2-y.^2); plot3(x,y,z,z,-y,z) 其中.*為數(shù)組相乘,.^為數(shù)組乘方
mesh()函數(shù)語(yǔ)法: mesh(Z): mesh(X,Y,Z,C):其中C是用來(lái)定義相應(yīng)點(diǎn)顏色等屬性的數(shù)組
例:求x^2+y^2=z的空間曲面 x=-4:4; y=x; [X,Y]=meshgrid(x,y);%生成x,y坐標(biāo) Z=X.^2+Y.^2; mesh(X,Y,Z)
級(jí)數(shù)的求和與收斂
symsum(fun,var,a,b):其中fun是通項(xiàng)表達(dá)式,var為求和變量,a為求和起點(diǎn),b為求和終點(diǎn) 例如:I為1/[n*(2n+1)]從1到正無(wú)窮的和,求I syms n; f1=1/(n*(2*n+1)); I=symsum(f1,n,1,inf)
計(jì)算結(jié)果為: I =2-2*log(2)
矩陣的基本運(yùn)算
行列式求值:det(A) 矩陣加減:+、- 矩陣相乘:* 矩陣左除:A/B %相當(dāng)于inv(A)*B 矩陣右除:A\B %相當(dāng)于A*inv(B) 矩陣的冪:^ 矩陣轉(zhuǎn)置:' 矩陣求共軛(實(shí)部相同,虛部相反):conj(X) 矩陣求逆:inv(X)
1。索引圖像:包括一個(gè)數(shù)據(jù)矩陣X和一個(gè)色圖陣MAP。矩陣元素值指向MAP中的特定顏色向量。 2。灰度圖像:數(shù)據(jù)矩陣I,I中的數(shù)據(jù)代表了顏色灰度值。矩陣中的元素可以是double類型、8位或16位無(wú)符號(hào)的整數(shù)類型。 3。RGB圖像:即真彩圖像。矩陣中每個(gè)元素為一個(gè)數(shù)組,數(shù)組的元素定義了像素的紅、綠、藍(lán)顏色值。RGB數(shù)組可以是double類型、8位或16位無(wú)符號(hào)的整數(shù)類型。 4。二值圖像:一個(gè)數(shù)據(jù)陣列,每個(gè)象素只能取0或1。
圖像類型轉(zhuǎn)換函數(shù): dither() 通過(guò)顏色抖動(dòng),把真彩圖像轉(zhuǎn)換成索引圖像或灰度圖象轉(zhuǎn)換成二值圖像 gray2ind() 將灰度圖像(或二值圖像)轉(zhuǎn)換成索引圖像 grayslice() 通過(guò)設(shè)定的閾值將灰度圖象轉(zhuǎn)換成索引圖像 im2bw() 通過(guò)設(shè)定亮度閾值將灰度、真彩、索引圖象轉(zhuǎn)換成二值圖像 ind2gray() 將索引圖象轉(zhuǎn)換成灰度圖象 ind2rgb() 將索引圖象轉(zhuǎn)換成真彩色圖像 mat2gray() 將一個(gè)數(shù)據(jù)矩陣轉(zhuǎn)換成一幅灰度圖象 rgb2gray() 將真彩轉(zhuǎn)換成灰度圖象 rgb2ind() 將真彩轉(zhuǎn)換成索引圖象
圖像數(shù)據(jù)類型及轉(zhuǎn)換函數(shù)
默認(rèn)情況下,matlab將圖象中的數(shù)據(jù)存儲(chǔ)為double型,即64位浮點(diǎn)數(shù);matlab還支持無(wú)符號(hào)整型(uint8和uint16);uint型的優(yōu)勢(shì)在于節(jié)省空間,涉及運(yùn)算時(shí)要轉(zhuǎn)換成double型。
im2double():將圖象數(shù)組轉(zhuǎn)換成double精度類型 im2uint8():將圖象數(shù)組轉(zhuǎn)換成unit8類型 im2uint16():將圖象數(shù)組轉(zhuǎn)換成unit16類型
|
|