MATLAB學習筆記2

2021-10-03 12:47:48 字數 3503 閱讀 8915

注:僅供學習使用,部分內容來自學校課程課件或網路,理性**。

1.記憶體變數的顯示與刪除

(1)who:顯示matlab工作空間中已經駐留的變數名清單。

(2)whos:給出變數名的同時,給出它們的大小、所佔位元組數和資料型別

(3)clear:刪除matlab工作空間中的變數。但特殊變數不能被刪除。

>>x = 1; y = 2; 

>> who

your variables are:

x y

>> whos

name size bytes class attributes

x 1x1 8 double

y 1x1 8 double

>> clear

>>

個人體會:

①工作窗可以快速看到變數和結果,如果做了clear操作,內容就會消失,這個工作視窗和codeblocks除錯過程中的watches除錯窗類似,可以快速看到變數的初始化等過程。

②當直接在命令視窗右鍵進行清空時,由工作視窗顯示變數不會消失,但是使用clear之後,變數會被徹底清空,因此,如果要重新開始乙個新的命令而不使用以前的定義,需要進行clear操作而非「清空命令視窗」。

4.向量與矩陣的建立

(1)矩陣的建立:將矩陣元素用方括號括起來,按矩陣行的順序輸入各個元素,**同一行元素用逗號或空格隔開,行與行之間用分號或回車鍵隔開。**元素可以是數值或者是表示式元素,表示式可由數字、變數、運算子和函式等組成。**塊中,a是3x3的矩陣,z和m分別代表了陣列元素可以是複數,也可以是表示式。

>> a=[1,2,3;4,5,6;7,8,9]

a = 1 2 3

4 5 6

7 8 9

>> z=[1+2i,2+3i;2-1i,3-2i]

z = 1.0000 + 2.0000i 2.0000 + 3.0000i

2.0000 - 1.0000i 3.0000 - 2.0000i

>> m=[-1.3,1+2+3,sqrt(5)]

m = -1.3000 6.0000 2.2361

(2)等間隔行向量的建立:

①冒號表示式: x1:dx:x2 或 x1:x2

含義:初值x1,增量dx和終值x2分別表示開始值、步長和結束值。增量可為賦值,省略時則預設增量為1。當增量省略或增量大於0而初值大於終值時,為空向量;當增量小於0而初值小於終值時也為空向量。

②使用linspace:linspace(a,b,n)

含義:生成從a到b之間等線分的n個元素的行向量(n的預設中為100)

(3)特殊矩陣的建立:

①函式庫elmat:

zeros(n) 產生nxn零矩陣

zeros(m,n) 產生mxn零矩陣

zeros(size(a)) 產生於矩陣a同樣大小的零矩陣

eye()函式為產生主對角線為1的矩陣

ones()函式為產生元素全為1的矩陣

②函式rand用於產生[0,1]之間均勻分布的隨機數;randn用於產生服從標準正態分佈的隨機數(均值為0,標準差為1)

>> r1=rand %產生乙個範圍在[0,1]的隨機數

r1 =

0.8491

>> r2=rand(2) %產生乙個2x2矩陣,其元素在[0,1]範圍內

r2 =

0.9340 0.7577

0.6787 0.7431

>> r3=rand(2,4) %產生乙個2x4矩陣,其元素在[0,1]範圍內

r3 =

0.3922 0.1712 0.0318 0.0462

0.6555 0.7060 0.2769 0.0971

>> r=round(rand*9+1) %產生1-10之間均勻分布的整數

r = 8

③diag函式

x = diag(n):以n為向量,則產生以n中元素為主對角線元素的對角矩陣;若以n為矩陣,則提取n的主對角線元素。

x = diag(n,m):以n為向量,產生第m條對角線上的元素為v中元素的對角矩陣;若v為矩陣,則提取的第k條對角線上的元素。

diag函式還可以得到複雜矩陣比如diag(m)+diag(n,1)等

例:diag函式的使用

>> n=[2,-10,8]

n = 2 -10 8

>> a=diag(n)

a = 2 0 0

0 -10 0

0 0 8

>> a1=diag(n,1)

a1 =

0 2 0 0

0 0 -10 0

0 0 0 8

0 0 0 0

>> a2=diag(n,-1)

a2 =

0 0 0 0

2 0 0 0

0 -10 0 0

0 0 8 0

>> x=rand(3)

x = 0.7572 0.5678 0.5308

0.7537 0.0759 0.7792

0.3804 0.0540 0.9340

>> d=diag(x)

d = 0.7572

0.0759

0.9340

>> d1=diag(x,1)

d1 =

0.5678

0.7792

>> d2=diag(x,-1)

d2 =

0.7537

0.0540

④其他函式

blkdiag(a1,a2…an):生成分塊對角矩陣

a=triu(x):矩陣x主對角線及以上元素的上三角矩陣

a=triu(x,k):矩陣x第k條對角線及以上的上三角矩陣

tril()函式為下三角矩陣,用法同triu

magic():生成魔方矩陣(幻方)

還有一些用於生成專門學科的特殊矩陣函式,例如線性代數中提及的範德蒙德矩陣(vander)等。

day2學習體會:matlab中有很多函式庫,這一點非常類似於python,這些函式可以不用呼叫而直接使用(省去了import或#include的過程)。這讓matlab的操作更加容易上手,對於命令視窗,通過是否加分號可以控制是否輸出中間變數。而對於指令碼,寫完的指令碼經過儲存為.m檔案,可以直接呼叫,都十分方便。

Matlab 變數 學習筆記 2

matlab 定義乙個變數,例如 x 4 在使用變數時 1.必先賦值 2.系統接收乙個變數後可以被引用,3,表示式返回的結果,不會分配給任何變數,系統分配乙個變數名ans,以後可以繼續使用,1,在使用matlab時 執行多個任務同一行。2,但需要查詢使用了的變數名,可以使用who查詢,而且whos查...

MATLAB學習筆記 特殊矩陣(2)

1.通用的特殊矩陣 zeros 產生全0矩陣 ones 全1矩陣 eye 單位矩陣 rand 0 1之間均勻分布的隨機矩陣 randn 均值為0,方差為1的標準正態分佈隨機矩陣 呼叫格式 zeros m 產生 m x m 零矩陣 zeros m,n 產生m x n 零矩陣 zeros size a ...

Matlab學習筆記2 關於函式

1.可以通過查詢fx來獲得自己想找到的函式。2.section區塊 run section可以用來debug。3.智慧型縮排。4.常用指令 if,elseif,else switch,case,otherwise while,break,continue,end for end pause retu...