Matlab基礎

matlab中常用的command窗口命令

上下鍵――切換到之前、之後的命令,可以重複按多次來達到你想要的命令

clc――清除命令窗口顯示的語句,此命令並不清空當前工作區的變量,僅僅是把屏幕上顯示出來的語句清除掉    

clear――這個纔是清空當前工作區的變量命令,常用語句clear all來完成

clf     清除圖形窗中顯示內容

 

Command history windows

歷史命令窗口記錄所有運行過的命令。當退出MATLAB或運行clc命令時,命令窗口將會被清空,但歷史命令窗口仍然會保存所有運行過的命令。

1.編輯菜單可以清空該窗口中的命令。Edit-clear command history

2.雙擊歷史命令窗口中的命令行就可以把該命令調回命令窗口運行。

3.單擊並拖拽命令代碼到命令窗口也可運行歷史命令

 

Workplace

工作區記錄命令窗口中已經運行過變量。

ans是matlab中默認的結果變量. 每次matlab進行運算後, 結果都要儲存在指定的變量中. 如果你只是輸入表 達式, 卻不指定把表達式的運算結果儲存在哪個變量裏面, 那麼matlab就自 動地將結果儲存在ans變量中. 直到下一次不帶指定存儲變量的運算結束前, ans中 所儲存的值不變. 

float是單精度浮點數,它的範圍可以取到-3.40292347E+38到+3.40292347E+38之間

double是雙精度浮點 ,它的範圍可以取到-1.79769313486231570E+308到+1.79769313486231570E+308之間

單精度浮點變量與雙精度浮點變量在內存的佔用上是不同的.一般float是4個字節,而double是8個字節

 

Matlab 變量命名規則

變量名必須以字母開始,區分大小寫,最長變量名爲63個字符,可以用namelengthmax來保證

變量名中允許使用的字符僅包括:字母,數字和下劃線。可以用isvarname來覈實變量名的有效性。與其它計算機語言類似,數字1表示true, 數字0表示false

        Isvarname  time   ;

 MATLAB中保留的關鍵字不能作爲變量名。用戶可以使用命令iskeyword查看系統預定義的關鍵字

MATLAB允許重新指定內置函數名作爲變量名。

       sin = 4

   但這樣做是很危險的,因爲函數內置sin就不能再被使用了。可以輸入下述命令將sin恢復到函數功能

    clear    sin

MATLAB中可以用which來檢查一個變量是否爲內置函數

Which sin

 

MATLAB中標量的運算

 

運算

算術語法

MATLAB語法

a+b

a+b

a-b

a-b

a×b

a*b

a÷b

a/b

指數

ab

a^b

 

Linspace 和logspace

等差數列用linspace來定義,確定數組中初始元素、最終元素和步數。

Eg:  a=linspace(1,10,3)

等比數列用logspace來定義,需要輸入三個值:前兩個分別作爲10的指數,最後一個是數組中元素的個數。

Eg:  b=logspace(1,3,3)

 

簡單的矩陣運算

矩陣和標量進行運算:可以使用算術運算

a=[1 2 3]

b=a+5

c=a*5

矩陣運算中的乘、除、平方

 相乘.*  ;  相除:./  ;  冪運算:.^

a=[1 2 3]  ;  b=[4 5 6] ; c=[7 8 9 ]

a.*b

b./a

c.^a

MATLAB的矩陣運算能力適合進行重複運算。

例如:假設需要把多個角度值轉換成弧度值。

首先輸入矩陣的值,角度值分別爲10,15,70,90

degrees=[10,15,70,90]

若將其轉換成弧度,則需要乘以π/180

Radians= degrees*pi/180或degrees.*pi/180

注:在matlab中,π值用內置的浮點數pi表示。因爲π是一個無理數,它不能用一個浮點數精確表示。所以matlab用一個近似的常數pi來表示。在三角函數中sin(pi)的值爲0,但matlab卻返回一個很小的值1.2246e-016就是這個原因。

 

數值顯示-科學計數法

    一般情況下,十進制數可以表示所有數值,但太大或太小的數值難以用基本的十進制數表示。

Eg:阿弗加德羅常數=602 200 000 000 000 000 000 000

科學記數法表示爲:6.022×1023

      在matlab中,科學記數法是在十進制小數部分與指數部分之間放置字母e

Eg: Avogadro’s_constant=6.022e23

    注:一般來說,科學記數法採用10的冪來表示,但很多人經常把這種命名方法與數學上的自然數e相混淆,數學上e=2.7183。在matlab中e的指數用exp函數表示,

    eg:exp(3)=e3

 

數值顯示-顯示格式

在MATLAB裏有多種顯示格式,無論選擇哪一種,MATLAB都使用雙精神浮點數進行計算。雙精度浮點數有16位十進制有效數字,改變顯示方式不會改變計算結果的精確度。也就是說無論用哪種顯示格式,進行運算時使用雙精度浮點數。除非調用特殊的函數,否則matlab不區分整數和浮點數。

Matlab命令

顯  示

實  例

format short

4位有效數字

 

format long

14位有效數字

 

format short e

4位有效數字科學記數法

 

format long e

14位有效數字科學記數法

 

format bank

僅顯示實際值2位有效數字

 

format short eng

4位有效數字的工程記數法

 

format long eng

14位有效數字的工程記數法

 

format +

只顯示+和-號

 

format rat

分數形式

 

format short g

Matlab自動選擇最佳顯示格式

 

format long g

Matlab自動選擇最佳顯示格式

 

 

常用數學函數

 

abs(x)

x的絕對值

sqrt(x)

x的平方根

Nthroot(x,n)

xn次方實數根,函數的輸出結果不能是複數

sign(x)

如果x大於0輸出1;如果如果x等於0輸出0;如果如果x小於0輸出-1

rem(x,y)

x/y的餘數

Exp(x)

計算ex,其中e是自然對數的底,數值約等於2.7183

Log(x)

計算ln(x),它是x的自然對數(底爲e

Log10(x)

計算lg(x),x的常用對數(底爲10

Log2(x)

2爲底的對數,其它數值爲底的對數運算需要間接求得。Matlab未提供通用的對數運算函數

取 整 函 數

round(x)

x四捨五入

round(8.6)

ans=9

fix(x)

x取整,捨棄小數點後的數值

fix(8.6)

ans=8

floor(x)

x負向取整

floor(-8.6)

ans=-8

ceil(x)

x正向取整

ceil(-8.6)

ans=-8

 

離散數學中的函數

factor(x)

x進行因式分解

gcd(x,y)

找出xy的最大公因數

lcm

找出xy的最小公倍數

rats(x)

用分數表示x

factorial(x)

計算x的階乘,如6!=6×5×4×3×2×1

nchoosek(n,k)

計算n中選k的組合數。如10中選3的可能組合數爲120

primes(x)

提出小於x的素數

isprime(x)

檢查x是否爲素數,若x是素數,則返回1;否則,返回0

 

三角函數

sin(x)

X用弧度表示,計算x的正弦值

cos(x)

X用弧度表示,計算x的餘弦值

tan(x)

X用弧度表示,計算x的正切值

asin(x)

X的取值在[-11]區間內,計算反正弦值,返回值在[-π/2, π/2]區間內

sinh(x)

X用弧度表示,計算x的雙曲正弦值

asinh(x)

計算x的反雙曲正弦值

sind(x)

X用角的度數表示,計算x的正弦值

asind(x)

計算反正弦,結果用角的度數表示

 

數據分析函數-最大值和最小值

max(x)

1)求出矢量x的最大值。例如x=[1 5 3]最大值是5

2)創建一個包含矩陣x中每列最大值的行矢量。

[a,b]=max(x)

求矢量x中元素的最大值和最大值的位置,a表示最大值,b表示最大值的位置。

x是矩陣,此函數生成兩個行矢量,一個行矢量表示x各列的最大值,另一個行矢量對應最大值元素的位置。

max(x,y)

矩陣xy具有相同的行和列,用兩個矩陣中相同位置元素的最大值創建一個新的矩陣

min(x)

1)求矢量x的最小值

2)創建一個包含矩陣x中每列最小值的行矢量。

[a,b]=min(x)

求矢量x中元素的最小值和最小值的位置,a表示最小值,b表示最小值的位置。

x是矩陣,此函數生成兩個行矢量,一個行矢量表示x各列的最小值,另一個行矢量對應最小值元素的位置。

min(x,y)

矩陣xy具有相同的行和列,用兩個矩陣中相同位置元素的最小值創建一個新的矩陣

 

數據分析函數-平均值和中間值

mean(x)

1)求矢量x的平均值。

2)當x爲矩陣時,返回值是含有各列平均值的行矢量。

median(x)

1)求矢量x元素的中間值

2)當x爲矩陣時,返回值是含有各列中間值的行矢量。

mode(x)

求數組中出現次數最多的數,即衆數。

 

medianmode

median的用法:如果數組有奇數個,中間值就是將數組按大小順序排列,取中間的那個數作爲中值;如果數組有偶數個,那麼就去中間那兩個數的平均值。

mode的用法:求數組中出現次數最多的數;如果數組中的數出現的頻率相同,則返回數值最小的數。

 

數據分析函數-求和與乘積

sum(x)

1)求矢量x各元素之和。

2)若x是矩陣,返回結果是包含各列元素之和的行矢量。

prood(x)

1)求矢量x各元素的乘積。

2)若x是矩陣,返回結果是包含各列元素乘積的行矢量。

cumsum(x)

1)求x元素的累加和。

2)若x是矩陣,計算矩陣各列元素的累加和。

cumprod(x)

1)求x元素的累積。

2)若x是矩陣,計算矩陣x各列元素的累積。

 

數據分析函數-排序

Sort(x)

1)對矢量x按升序排列。

2)若x是矩陣,則按列進行升序排序。

Sort(x,’ descend’)

各列按降序排列。

Sortrows(x)

以矩陣第一列爲標準,升序排列矩陣各行。

Sortrows(x,n)

以矩陣第n列的數據爲標準,按升序排序矩陣各行。若n爲負數,則按降序排列,如果沒有指定n的值,則以第一列爲標準,按升序行排列。

 

數據分析函數-規模函數

size(x)

求矩陣x的行數和列數。若x爲多維數組,則size用來求數組的維數和長度。

[a,b]=size(x)

確定矩陣x的行數和列數,a表示行數,b表示列數。

length(x)

確定矩陣的最大長度

 

數據分析函數-標準差和方差

std(x)

1)計算矢量x的標準差。但標準差一般只計算大規模數據集。

2)計算矩陣各列數據的標準差。再次強調,標準差僅限於分析大規模數據集。

var(x)

計算x的方差。但方差一般只計算大規模數據集。標準差是方差的平方根。

 

 

特殊函數

pi

數學常數π

 

i

虛數

 

j

虛數

 

inf

無窮大,數據溢出或除數爲0時的輸出

5/0

NaN

非數,當計算沒有被定義時發生

Inf/inf

clock

爲了增加返回結果可讀性,函數clockfix一起使用

fix(clock)

date

當前日期。該函數與clock類似,不同之處在於返回的日期採用字符串格式。

date

eps

最接近1的雙精度浮點數與1的距離,即Matlab中的最小極限

eps

 

Matlab的矩陣運算 

創建矩陣

矩陣合併

從矩陣中提取信息

矩陣特性的運用

 

冒號的使用

冒號運算符常用於定義一個新矩陣或修改原有矩陣。例如利用冒號可以定義一個等差數列。

在進行數值計算時,常用冒號從矩陣中提取數據。如果冒號用在代表行或列的序號位置,則表示所有的行或所有的列。

M=[1 2 3 4 5;2 3 4 5 6;3 4 5 6 7]

提取矩陣第一列的命令爲:

      x=M(:,1)

上面的語句可理解爲提取第1列的所有行。

如果不需要提取整行或整列,冒號可理解爲從…行到…行或從…列到…列。

     y=M(2:3,:)

語句的含義可以理解爲提取第2行到第3行的所有列

Z=M(2:3,4:5)

語句的含義爲提取第2行到第3行的第4列到第5列數據。

如果在矩陣名後直接加上冒號M(:),就會把原矩陣變成一個列矢量

事實上,在計算機內部並不是按照二維的形式存儲二維矩陣的,而是把矩陣看成是一個長的列表。

 

矩陣中數字的提取

如果需要從矩陣中提取數字,則可採用種方法,即用序號標示或用行和列標示

Eg:M=[1 2 3 4 5;2 3 4 5 6;3 4 5 6 7]

M(8);或M(2,3)

序號標示是按列開始數數字的序號

如果不知道矩陣有多少行或多少列,則可以用單詞end表示最後一行或最後一列

Eg:M(1,end)

M(end,end)

M(end)

 

特殊矩陣

zeros(m)

創建m×m的全零矩陣

zeros(mn)

創建m×n的全零矩陣

ones(m)

創建m×m的全1矩陣

ones(m,n)

創建m×n的全1矩陣

diag(A)

提取二維矩陣A中的對角元素

fliplr

對矩陣的列進行左右對稱翻轉

flipud

對矩陣的行進行上下對稱翻轉

 

Matlab繪圖

繪製二維圖形,並對二維圖形進行標註

調整圖形

子圖窗口的劃分

繪製三維圖形

使用交互繪圖工具

 

二維圖

簡單的x-y座標圖,就可以根據x,y的值繪製圖形。假設根據測量結果獲得一組時間和距離的數據。

    x=[0:2:16];

    y=[0,0.33,4.13,6.29,11.19,13.19,13.96,16.33,18.17];

以x,y爲參數,用plot命令描繪各點:

plot(x,y)

在實際工程中往往要給出圖形的標題,以及座標軸上變量的單位。用以下命令可以在圖形上添加相應的標題、x軸和y軸的標註,以及柵格:

    plot (x,y)

    xlabel(‘Time,sec’)

    ylabel(‘Distance,ft’)

    grid on

也可以將上述語句合併在一起用逗號隔開寫成一行或兩行:

plot (x, y), title (‘Laboratory Experiment 1’)

xlabel(‘Time,sec’) , ylabel(‘Distance,ft’),grid

輸入上面的命令時,單引號(‘)後的內容變爲紅色,用於提示輸入字符串。輸入後面的單引號後顏色變成紫色,提示輸入的字符串結束。

在添加標題和座標軸標註前要先創建圖形,否則繪圖命令會刪除前面已經設置的標註。

命令xlabel,ylabel和title中的字符串一般用單引號結束。在Matlab中也可以使用撇號(如it’s)。輸入兩個單引號中間可以用撇號隔開,但不能使用雙引號。

 

基本繪圖功能

plot

創建一個x-y座標圖

plot(x,y)

title

添加標題

title(‘My Graph’)

xlabel

添加x軸標註

xlabel(‘time’)

ylabel

添加y軸標註

ylabel(‘distance’)

grid

添加柵格

grid,grid on,grid off

pause

暫停程序,觀察圖形

 

figure

定義當前圖形

figure ,figure(2)

hold

保存圖形

hold on/hold off


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章