国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
matlab實用函數(shù)及技巧整理

matlab實用函數(shù)及技巧整理===============================================

小整理:MATLAB常用的基本數(shù)學(xué)函數(shù)

abs(x):純量的絕對值或向量的長度

angle(z):復(fù)數(shù)z的相角(Phase angle)

sqrt(x):開平方

real(z):復(fù)數(shù)z的實部

imag(z):復(fù)數(shù)z的虛部

conj(z):復(fù)數(shù)z的共軛復(fù)數(shù)

round(x):四舍五入至最近整數(shù)

fix(x):無論正負(fù),舍去小數(shù)至最近整數(shù)

floor(x):地板函數(shù),即舍去正小數(shù)至最近整數(shù)

ceil(x):天花板函數(shù),即加入正小數(shù)至最近整數(shù)

rat(x):將實數(shù)x化為分?jǐn)?shù)表示

rats(x):將實數(shù)x化為多項分?jǐn)?shù)展開

sign(x):符號函數(shù) (Signum function)。

當(dāng)x<0時,sign(x)=-1;

當(dāng)x=0時,sign(x)=0;

當(dāng)x>0時,sign(x)=1。

rem(x,y):求x除以y的馀數(shù)

gcd(x,y):整數(shù)x和y的最大公因數(shù)

lcm(x,y):整數(shù)x和y的最小公倍數(shù)

exp(x):自然指數(shù)

pow2(x):2的指數(shù)

log(x):以e為底的對數(shù),即自然對數(shù)或

log2(x):以2為底的對數(shù)

log10(x):以10為底的對數(shù)

===============================================

小整理:MATLAB常用的三角函數(shù)

sin(x):正弦函數(shù)

cos(x):馀弦函數(shù)

tan(x):正切函數(shù)

asin(x):反正弦函數(shù)

acos(x):反馀弦函數(shù)

atan(x):反正切函數(shù)

atan2(x,y):四象限的反正切函數(shù)

sinh(x):超越正弦函數(shù)

cosh(x):超越馀弦函數(shù)

tanh(x):超越正切函數(shù)

asinh(x):反超越正弦函數(shù)

acosh(x):反超越馀弦函數(shù)

atanh(x):反超越正切函數(shù)

====================================================

小整理:適用於向量的常用函數(shù)有:

min(x): 向量x的元素的最小值

max(x): 向量x的元素的最大值

mean(x): 向量x的元素的平均值

median(x): 向量x的元素的中位數(shù)

std(x): 向量x的元素的標(biāo)準(zhǔn)差

diff(x): 向量x的相鄰元素的差

sort(x): 對向量x的元素進(jìn)行排序(Sorting)

length(x): 向量x的元素個數(shù)

norm(x): 向量x的歐氏(Euclidean)長度

sum(x): 向量x的元素總和

prod(x): 向量x的元素總乘積

cumsum(x): 向量x的累計元素總和

cumprod(x): 向量x的累計元素總乘積

dot(x, y): 向量x和y的內(nèi)積

cross(x, y): 向量x和y的外積

(大部份的向量函數(shù)也可適用於矩陣,詳見下述。)

====================================================

小整理:MATLAB的查詢命令

help:用來查詢已知命令的用法。例如已知inv是用來計算反矩陣,鍵入

help inv即可得知有關(guān)inv命令的用法。(鍵入help help則顯示help的用

法,請試看看?。?p style="TEXT-INDENT: 2em">

lookfor:用來尋找未知的命令。例如要尋找計算反矩陣的命令,可鍵入

lookfor

inverse,MATLAB即會列出所有和關(guān)鍵字inverse相關(guān)的指令。找到所需的

命令後,即可用help進(jìn)一步找出其用法。(lookfor事實上是對所有在搜尋

路徑下的M檔案進(jìn)行關(guān)鍵字對第一注解行的比對,詳見後敘

===============================================

下表即為MATLAB常用到的永久常數(shù)。

小整理:MATLAB的永久常數(shù)

i或j:基本虛數(shù)單位(即)

eps:系統(tǒng)的浮點(diǎn)(Floating-point)精確度

inf:無限大, 例如1/0

nan或NaN:非數(shù)值(Not a number),例如0/0

pi:圓周率 p(= 3.1415926...)

realmax:系統(tǒng)所能表示的最大數(shù)值

realmin:系統(tǒng)所能表示的最小數(shù)值

nargin: 函數(shù)的輸入引數(shù)個數(shù)

nargin: 函數(shù)的輸出引數(shù)個數(shù)

====================================================

1-7、結(jié)束MATLAB

有三種方法可以結(jié)束MATLAB:

1.鍵入exit

2.鍵入quit

3.直接關(guān)閉MATLAB的命令視窗(Command window)

====================================================

小整理:MATLAB基本繪圖函數(shù)

plot: x軸和y軸均為線性刻度(Linear scale)

loglog: x軸和y軸均為對數(shù)刻度(Logarithmic scale)

semilogx: x軸為對數(shù)刻度,y軸為線性刻度

semilogy: x軸為線性刻度,y軸為對數(shù)刻度

====================================================

若要畫出多條曲線,只需將座標(biāo)對依次放入plot函數(shù)即可:

plot(x, sin(x), x, cos(x));

若要改變顏色,在座標(biāo)對後面加上相關(guān)字串即可:

plot(x, sin(x), 'c', x, cos(x), 'g');

若要同時改變顏色及圖線型態(tài)(Line style),也是在座標(biāo)對後面加上相

關(guān)字串即可:

plot(x, sin(x), 'co', x, cos(x), 'g*');

====================================================

小整理:plot繪圖函數(shù)的叁數(shù)

字元 顏色 字元 圖線型態(tài)

y 黃色 . 點(diǎn)

k 黑色 o 圓

w 白色 x x

b 藍(lán)色 + +

g 綠色 * *

r 紅色 - 實線

c 亮青色 : 點(diǎn)線

m 錳紫色 -. 點(diǎn)虛線

-- 虛線

====================================================

圖形完成後,我們可用axis([xmin,xmax,ymin,ymax])函數(shù)來調(diào)整圖軸的范

圍:

axis([0, 6, -1.2, 1.2]);

此外,MATLAB也可對圖形加上各種注解與處理:

xlabel('Input v alue'); % x軸注解

ylabel('Function v alue'); % y軸注解

title('Two Trigonometric Functions'); % 圖形標(biāo)題

legend('y = sin(x)','y = cos(x)'); % 圖形注解

grid on; % 顯示格線

我們可用subplot來同時畫出數(shù)個小圖形於同一個視窗之中:

subplot(2,2,1); plot(x, sin(x));

subplot(2,2,2); plot(x, cos(x));

subplot(2,2,3); plot(x, sinh(x));

subplot(2,2,4); plot(x, cosh(x));

MATLAB還有其他各種二維繪圖函數(shù),以適合不同的應(yīng)用,詳見下表。

====================================================

小整理:其他各種二維繪圖函數(shù)

bar 長條圖

errorbar 圖形加上誤差范圍

fplot 較精確的函數(shù)圖形

polar 極座標(biāo)圖

hist 累計圖

rose 極座標(biāo)累計圖

stairs 階梯圖

stem 針狀圖

fill 實心圖

feather 羽毛圖

compass 羅盤圖

quiver 向量場圖

====================================================

以下我們針對每個函數(shù)舉例。

當(dāng)資料點(diǎn)數(shù)量不多時,長條圖是很適合的表示方式:

close all; % 關(guān)閉所有的圖形視窗

x=1:10;

y=rand(size(x));

bar(x,y);

如果已知資料的誤差量,就可用errorbar來表示。下例以單位標(biāo)準(zhǔn)差來做

資料的誤差量:

x = linspace(0,2*pi,30);

y = sin(x);

e = std(y)*ones(size(x));

errorbar(x,y,e)

對於變化劇烈的函數(shù),可用fplot來進(jìn)行較精確的繪圖,會對劇烈變化處進(jìn)

行較密集的取樣,如下例:

fplot('sin(1/x)', [0.02 0.2]); % [0.02 0.2]是繪圖范圍

若要產(chǎn)生極座標(biāo)圖形,可用polar:

theta=linspace(0, 2*pi);

r=cos(4*theta);

polar(theta, r);

對於大量的資料,我們可用hist來顯示資料的分 情況和統(tǒng)計特性。下面

幾個命令可用來驗證randn產(chǎn)生的高斯亂數(shù)分?。?p style="TEXT-INDENT: 2em">

x=randn(5000, 1); % 產(chǎn)生5000個 ?=0,?=1 的高斯亂數(shù)

hist(x,20); % 20代表長條的個數(shù)

rose和hist很接近,只不過是將資料大小視為角度,資料個數(shù)視為距離,?⒂眉 昊嬤票硎荊?

x=randn(1000, 1);

rose(x);

stairs可畫出階梯圖:

x=linspace(0,10,50);

y=sin(x).*exp(-x/3);

stairs(x,y);

stems可產(chǎn)生針狀圖,常被用來繪制數(shù)位訊號:

x=linspace(0,10,50);

y=sin(x).*exp(-x/3);

stem(x,y);

stairs將資料點(diǎn)視為多邊行頂點(diǎn),并將此多邊行涂上顏色:

x=linspace(0,10,50);

y=sin(x).*exp(-x/3);

fill(x,y,'b'); % 'b'為藍(lán)色

feather將每一個資料點(diǎn)視復(fù)數(shù),并以箭號畫出:

theta=linspace(0, 2*pi, 20);

z = cos(theta)+i*sin(theta);

feather(z);

compass和feather很接近,只是每個箭號的起點(diǎn)都在圓點(diǎn):

theta=linspace(0, 2*pi, 20);

z = cos(theta)+i*sin(theta);

compass(z);

--

3.基本XYZ立體繪圖命令

在科學(xué)目視表示(Scientific visualization)中,三度空間的立體圖是

一個非常重要的技巧。本章將介紹MATLAB基本XYZ三度空間的各項繪圖命

令。

mesh和plot是三度空間立體繪圖的基本命令,mesh可畫出立體網(wǎng)狀圖,

plot則可畫出立體曲面圖,兩者產(chǎn)生的圖形都會依高度而有不同顏色。下

列命令可畫出由函數(shù) 形成的立體網(wǎng)狀圖:

x=linspace(-2, 2, 25); % 在x軸上取25點(diǎn)

y=linspace(-2, 2, 25); % 在y軸上取25點(diǎn)

[xx,yy]=meshgrid(x, y); % xx和yy都是21x21的矩陣

zz=xx.*exp(-xx.^2-yy.^2); % 計算函數(shù)值,zz也是21x21的矩陣

mesh(xx, yy, zz); % 畫出立體網(wǎng)狀圖

surf和mesh的用法類似:

x=linspace(-2, 2, 25); % 在x軸上取25點(diǎn)

y=linspace(-2, 2, 25); % 在y軸上取25點(diǎn)

[xx,yy]=meshgrid(x, y); % xx和yy都是21x21的矩陣

zz=xx.*exp(-xx.^2-yy.^2); % 計算函數(shù)值,zz也是21x21的矩陣

surf(xx, yy, zz); % 畫出立體曲面圖

為了方便測試立體繪圖,MATLAB提供了一個peaks函數(shù),可產(chǎn)生一個凹凸有

致的曲面,包含了三個局部極大點(diǎn)及三個局部極小點(diǎn),其方程式為:

要畫出此函數(shù)的最快方法即是直接鍵入peaks:

peaks

z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) ...

- 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2) ...

- 1/3*exp(-(x+1).^2 - y.^2)

我們亦可對peaks函數(shù)取點(diǎn),再以各種不同方法進(jìn)行繪圖。meshz可將曲面

加上圍裙:

[x,y,z]=peaks;

meshz(x,y,z);

axis([-inf inf -inf inf -inf inf]);

waterfall可在x方向或y方向產(chǎn)生水流效果:

[x,y,z]=peaks;

waterfall(x,y,z);

axis([-inf inf -inf inf -inf inf]);

下列命令產(chǎn)生在y方向的水流效果:

[x,y,z]=peaks;

waterfall(x',y',z');

axis([-inf inf -inf inf -inf inf]);

meshc同時畫出網(wǎng)狀圖與等高線:

[x,y,z]=peaks;

meshc(x,y,z);

axis([-inf inf -inf inf -inf inf]);

surfc同時畫出曲面圖與等高線:

[x,y,z]=peaks;

surfc(x,y,z);

axis([-inf inf -inf inf -inf inf]);

contour3畫出曲面在三度空間中的等高線:

contour3(peaks, 20);

axis([-inf inf -inf inf -inf inf]);

contour畫出曲面等高線在XY平面的投影:

contour(peaks, 20);

plot3可畫出三度空間中的曲線:

t=linspace(0,20*pi, 501);

plot3(t.*sin(t), t.*cos(t), t);

亦可同時畫出兩條三度空間中的曲線:

t=linspace(0, 10*pi, 501);

plot3(t.*sin(t), t.*cos(t), t, t.*sin(t), t.*cos(t), -t);

y(2:4)-1 % 取出y的第二至第四個元素來做運(yùn)算

同樣的方法可用於產(chǎn)生公差為1的等差數(shù)列:x = 7:16

x = 7:3:16 % 公差為3的等差數(shù)列

x = linspace(4, 10, 6) % 等差數(shù)列:首項為4,末項為10,項數(shù)為6

若要重新安排矩陣的形狀,可用reshape命令:B = reshape(A, 4, 2) % 4是新矩陣的列數(shù),2是新矩陣的行數(shù)

舉例來說,下列命令會產(chǎn)生一個長度為6的調(diào)和數(shù)列(Harmonic

sequence):

x = zeros(1,6); % x是一個16的零矩陣

for i = 1:6,

x(i) = 1/i;

end

for 圈可以是多層的,下例產(chǎn)生一個16的Hilbert矩陣h,其中為於第i

列、第j行的元素為:

h = zeros(6);

for i = 1:6,

for j = 1:6,

h(i,j) = 1/(i+j-1);

end

end

format rat % 使用分?jǐn)?shù)來表示數(shù)值

>>disp(x)

1 1/2 1/3 1/4 1/5 1/6

function output = fact(n)

% FACT Calculate factorial of a given positive integer.

output = 1;

for i = 1:n,

output = output*i;

end

其中fact是函數(shù)名,n是輸入引數(shù),output是輸出引數(shù),而i則是此函數(shù)用

到的暫時變數(shù)。要使用此函數(shù),直接鍵入函數(shù)名及適當(dāng)輸入引數(shù)值即可:

MATLAB的函數(shù)也可以是遞 式的(Recursive),也就是說,一個函數(shù)可以

呼叫它本身。舉例來說,n! =

n*(n-1)!,因此前面的階乘函數(shù)可以改成遞 式的寫法:

function output = fact(n)% FACT Calculate factorial of a given positive integer recursively.

if n == 1, % Terminating condition

output = 1;

return;

end

output = n*fact(n-1);

在寫一個遞 函數(shù)時,一定要包含結(jié)束條件(Terminating

condition),否則此函數(shù)將會一再呼叫自己,永遠(yuǎn)不會停止,直到電腦的

記憶體被耗盡為止。以上例而言,n==1即滿足結(jié)束條件,此時我們直接將

output設(shè)為1,而不再呼叫此函數(shù)本身。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
【matlab
重新學(xué)習(xí)MATLAB——作圖技法及3D可視化
Matlab中plot函數(shù)的使用
Matlab繪圖-很詳細(xì),很全面
高等應(yīng)用數(shù)學(xué)問題MATLAB求解.第一,二章
6、MATLAB圖形功能
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服