matlab學習筆記之基礎知識(一)

2021-09-27 04:47:20 字數 4327 閱讀 6646

一、兩種特殊資料型別

1.元胞陣列

元胞陣列是matlab的一種特殊資料型別,可以將元胞陣列看做一種無所不包的通用矩陣,或者叫做廣義矩陣。組成元胞陣列的元素可以是任何一種資料型別的常數或者常量,每乙個元素也可以具有不同的尺寸和記憶體占用空間,每乙個元素的內容也可以完全不同,所以元胞陣列的元素叫做元胞(cell)。和一般的數值矩陣一樣,元胞陣列的記憶體空間也是動態分配的。

建立方式:

1)直接賦值

>> a=

a =

'matlab

' [ 20

] [2x3 double] [1x10 double]

2)通過cell函式建立

>> b = cell(2,2

); b

= 'matlab';

b = 20; b

= ones(2,3

); b

= 1:10

;>>b

b =

'matlab

' [ 20

] [2x3 double] [1x10 double]

2.結構體結構體是matlab中另乙個能夠儲存不同型別資料的資料型別,它與元胞陣列的區別在於結構體是以指標的方式來傳遞資料,而元胞陣列是通過值傳遞

建立方式:

1)直接賦值

>> a.b1 = 111

;>> a.b2 = ones(3

);>> a.b3 = '

matlab 2013a';

>>a

a =b1:

111b2: [3x3 double]

b3:

'matlab 2013a

'

2)通過struct函式建立

結構體變數名 =  struct(屬性名1, 屬性值1, 屬性名2, 屬性值2,…)

>> b = struct('

b1',222,'

b2',ones(3),'

b3','

hello');

>>b

b =b1:

222b2: [3x3 double]

b3:

'hello

'

二、matlab常用運算已知線性方程組 ax = b

1.方程的解

(1)       求逆運算    x = inv(a) * b

(2)       左除運算    x = a\b

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

];>> b = [3;-4;-7

];>> x = inv(a)*b;

>>x

x = 1.0200

-14.0000

9.7200

>> y =a\b;

>>y

y = 1.0200

-14.0000

9.7200

2.矩陣的秩r = rank(a)

>> r =rank(a);

>>r

r = 3

3.矩陣的特徵值與特徵向量[v, lambda] = eig(a)

>> [v, lambda] =eig(a)

v = 0.8013 -0.1094 -0.1606

0.3638 -0.6564

0.8669

0.4749

0.7464 -0.4719

lambda =

9.732600

0 -3.292800

01.5602

4.矩陣的乘冪與開方

>> a1 = a ^2

; %乘冪

>> a2 =sqrt(a); %開方

>>a1

a1 =

622933

3412626

2234

>>a2

a2 =

2.4495 + 0.0000i 1.7321 + 0.0000i 2.0000 + 0

.0000i

0.0000 + 1.4142i 2.2361 + 0.0000i 2.6458 + 0

.0000i

2.8284 + 0.0000i 0.0000 + 1.0000i 0.0000 + 1.7321i

5.矩陣的指數與對數

>> y1 =exp(a);          %指數

>> y2 =log(a); %對數

>>y1

y1 =

1.0e+03 *

0.4034

0.0201

0.0546

0.0001

0.1484

1.0966

2.9810

0.0004

0.0000

>>y2

y2 =

1.7918 + 0.0000i 1.0986 + 0.0000i 1.3863 + 0

.0000i

0.6931 + 3.1416i 1.6094 + 0.0000i 1.9459 + 0

.0000i

2.0794 + 0.0000i 0.0000 + 3.1416i 1.0986 + 3.1416i

6.矩陣的提取與翻轉提取:上三角(右上):y1 = triu(a)

下三角(左下):y2 = tril(a)

對角線:y3 = diag(a)

翻**上下翻**y4 = filpud(a)

左右翻**y5 = filplr(a)

沿列翻**y6 = flipdim(a,1)

沿行翻**y7 = filpdim(a,2)

逆時針旋轉翻**y8 = rot90(a)

>> a_triu =triu(a)

a_triu =

6340570

0 -3

>> a_tril =tril(a)

a_tril =

600-250

8 -1 -3

>> a_diag =diag(a)

a_diag =

65 -3

>> a_ud =flipud(a)

a_ud =

8 -1 -3

-257

634

>> a_lr =fliplr(a)

a_lr =

43675 -2

-3 -18

>> a_l = flipdim(a,1)

a_l =

8 -1 -3

-257

634

>> a_h = flipdim(a,2)

a_h =

43675 -2

-3 -18

>> a_r90 =rot90(a)

a_r90 =

47 -3

35 -1

6 -2

8

7.「商」及「餘」多項式[q, r] = deconv(p1, p2),p1為輸入分子多項式係數,p2為輸入分母多項式係數,q為輸出多項式的「商」,r為輸出多項式的「餘」。

求多項式

>> p1 = conv([1,0,1],conv([1,3],[1,1

]))

p1 =

14443

>> p2 = [1,2,1]

p2 =

121>> [q,r] =deconv(p1,p2)

q =1

2 -1

r =

00044

未完待續。。。

matlab學習筆記(1) 基礎知識

資料的輸出格式 format 格式符 預設格式為short 字串是用單引號括起來的字串行 注意的點 函式 作用abs 將字串轉換為ascll碼值 char 將ascll碼值轉換為字串 strcmp 比較兩個字串大小 strcmpi 在忽略大小寫的前提下比較兩個字串的大小 預定義變數 由系統本身定義的...

Matlab教程 學習之基礎知識

開啟matlab軟體,則進入以下主介面 在主介面下拉列表file中雙擊preference,即可開啟preference視窗,使用者可以在視窗中修改系統的設定。在matlab的命令語句中,符號 後的部分是非執行部分,用於語句和程式的說明。如 213 456 求和 幾個常用的matlab語句 clc ...

matlab 基礎知識

matlab是乙個解釋型的語言不需要編譯,它既可以在命令視窗中一句一句的執行,也可以建立乙個指令碼整個的執行。這裡我們要注意的是我們的執行後產生的變數會在workspace 工作區 顯示,而且在工作區變數的值還是會影響下次的程式的執行,所以一般在執行前我們用clear all 我們也可以利用clea...