MATLAB學習 之 矩陣(一)

2021-10-23 17:07:25 字數 4770 閱讀 3713

構造向量的方法

直接法增量法

linspace/logspace函式法

(詳情請檢視matlab學習 一 建立向量)

1 簡單的建立方法

用**[ ]**直接建立

行之間用分號隔開,元素之間用空格或者逗號隔開

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

每行元素相同的矩陣可以這樣構造

a=[1 2 3]:

b=[a;a;a]

每列元素相同的話可以這樣構造

a=[1,2,3]』;

b=[a,a,a]

2 meshgrid函式

[x,y] = meshgrid(x,y)(二維)

構造行向量x,有m個元素(增量法)

x=0:2:8

構造列向量y,有n個元素 (logspace函式法)

y=logspace(0,1,8)

再使用meshgrid函式構造乙個矩陣

[x,y]=meshgrid(x,y)

[x,y]中的x,y矩陣都是m行n列的矩陣。但是x,y的構造不同,x矩陣是以行向量x縱向複製n列,y是以列向量y橫向複製m行。

surf(x,y,z)畫出三維圖形曲面

view(2)看一下俯檢視,可以看出,x軸座標均勻排列,y軸座標成對數排列

[x,y] = meshgrid(x)

[x,y,z] = meshgrid(x,y,z)(三維)

[x,y,z] = meshgrid(x,y,z)

3 構造特殊矩陣

ones 建立乙個所有元素都為1的矩陣

zeros 建立乙個所有元素都為0的矩陣

eye 建立乙個對角線為1,其他元素為0的矩陣(單位矩陣)

diag 根據向量建立對角矩陣(還可以用來獲得乙個矩陣對角線上的元素,並且可以根據這個獲取的元素構造乙個對角矩陣)

magic 建立乙個方形矩陣,其中行 ,列和對角線上元素的和相等

rand 建立乙個矩陣或陣列,其中元素為服從均勻分布的隨機數

randn 建立乙個矩陣或陣列,其中元素為服從正態分佈的隨機數

randpem 建立乙個向量(1 x n的矩陣)

4 聚合矩陣

矩陣聚合是通過連線乙個或者多個矩陣來形成新的矩陣。符號[ ]不就是矩陣構造符號,也是聚合運算子。c=[a b]在水平方向上聚合,c=[a;b在垂直方向上聚合。

a=ones(1,4)*5

b=rand(3,4)

c=[a;b]

聚合矩陣的特殊函式

| cat | 沿指定的維聚合矩陣|

|-horzcat-|水平聚合矩陣|

| vertcat | 垂直聚合矩陣 |

| repmat | 通過複製和疊置來建立新陣列和新矩陣 |

|-repelem-|通過複製元素來建立新矩陣和陣列|

| blkdiag | 用已有矩陣建立塊對角矩陣|

cat(2,a,b)按行方向聚合

cat(1,a,b)按列方向聚合

a=[1,2:3,4]

b=repmat(a,2)把a當成乙個塊,2x2

b=repmat(a,2,3) 2x3

5 組合不同型別的資料、

構造矩陣時,如果矩陣的資料型別不同,則會對這些元素進行型別轉換,然後生成的矩陣具有相同的型別。

例如:用乙個高精度的矩陣和乙個低精度的矩陣構造新矩陣時,新矩陣是低精度的。

a=[5.4; [ ],7.1]

把空矩陣忽略掉

single 和doubie -------single

double 和 int ------int

char 和 int ------char

double 和 邏輯 型 -----double

可以用class()檢視資料型別

以下為部分**:

ones(4)

ans =

1     1     1     1

1 1 1 1

1 1 1 1

1 1 1 1

ones(2,3)

ans =

1     1     1

1 1 1

zeros(1,2)

ans =

0     0
eye(3)

ans =

1     0     0

0 1 0

0 0 1

eye(2,3)

ans =

1     0     0

0 1 0

x=[0;2;8]

x =

0

2 8

x=[0:2:8]

x =

0     2     4     6     8
y=logspace(0,1,10)

y =列 1 至 9

1.0000    1.2915    1.6681    2.1544    2.7826    3.5938    4.6416    5.9948    7.7426
列 10

10.0000

[x,y]=meshgrid(x,y)

x =

0     2     4     6     8

0 2 4 6 8

0 2 4 6 8

0 2 4 6 8

0 2 4 6 8

0 2 4 6 8

0 2 4 6 8

0 2 4 6 8

0 2 4 6 8

0 2 4 6 8

y =

1.0000    1.0000    1.0000    1.0000    1.0000

1.2915 1.2915 1.2915 1.2915 1.2915

1.6681 1.6681 1.6681 1.6681 1.6681

2.1544 2.1544 2.1544 2.1544 2.1544

2.7826 2.7826 2.7826 2.7826 2.7826

3.5938 3.5938 3.5938 3.5938 3.5938

4.6416 4.6416 4.6416 4.6416 4.6416

5.9948 5.9948 5.9948 5.9948 5.9948

7.7426 7.7426 7.7426 7.7426 7.7426

10.0000 10.0000 10.0000 10.0000 10.0000

z=sin(x).*sin(y)

矩陣維度必須一致。

MATLAB之特殊矩陣

zeros函式 產生全0函式,即零矩陣 ones函式 產生全1函式,即么矩陣 eye函式 產生對角線為1的函式。當矩陣是方陣時,得到乙個單位矩陣 rand函式 產生 0,1 區間均勻分布的隨機矩陣 randn函式 產生均值為0,方差為1的標準正態分佈隨機矩陣x x可以得到均值為 方差為 方的隨機數 ...

matlab學習矩陣1

1 矩陣的直接建立 1.從鍵盤上直接輸入,將矩陣元素用方括號括起來,按矩陣行的順序輸入元素,同一行元素之間用空格或者逗號分隔,不同行之間的元素用分號或者回車號分割。例如輸入命令 a 1 2 3 4 5 6 7 8 9 a 1 2 3 4 5 6 7 8 9 a 1 2 3 4 5 6 7 8 9 a...

MatLab矩陣操作一

矩陣的建立 直接輸入元素 a 1,2,3 b 1 2 3 4 5 6 c 1 3 6 2 4 8 零矩陣 a zeros a為單元素矩陣 b zeros 4 b為4 4矩陣 c zeros 2,3 1矩陣 ones 冒號表示式建立行向量 1行n列矩陣 e1 e2 e3 e1起始值 e2步長 e3結尾...