Matlab矩陣基礎

2021-07-09 15:40:50 字數 2250 閱讀 9887

一、建立矩陣

1、通過直接賦值建立矩陣

將矩陣元素置於中,同行元素之間用空格或「,」分開,行與行之間用「;」隔開。

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

a = 123

4567

89

2、通過特殊的函式進行建立

函式名稱

函式功能

ones(n)

構建乙個n*n的1矩陣

ones(m,n…p)

構建乙個m*n*…*p的1矩陣

ones(size(a))

構建乙個和矩陣a同樣大小的1矩陣

zeros(n)

構建乙個n*n的0矩陣

zeros(m,n…p)

構建乙個m*n*…*p的0矩陣

zeros(size(a))

構建乙個和矩陣a同樣大小的0矩陣

eye(n)

構建乙個n*n的單位矩陣

eye(m*n)

構建乙個m*n的單位矩陣

eye(size(a))

構建乙個和矩陣a同樣大小的單位矩陣

rand(n)

構建乙個n*n矩陣,其元素在0~1之間均勻分布

rand(m,n…p)

構建乙個m*n*…*p的矩陣,其元素在0~1之間均勻分布

triu(a)

構建乙個和a大小相同的上三角矩陣,主對角線上的元素為a中相應元素,其餘為0

tril(a)

構建乙個和a大小相同的下三角矩陣,主對角線上的元素為a中相應元素,其餘為0

>> a=[1,2,3

;4,5,6;7,8,9]

a = 123

4567

89>> tril(a)

ans =

1004507

89

二、改變矩陣結構

matlab提供了一些函式來實現矩陣的變換。

函式名稱

函式功能

fliplr

矩陣每一行均進行逆序排序

flipud

矩陣每一行均進行公升序排序

rot90(a)

矩陣a逆時針旋轉90而得到新的矩陣

rot90(a,k)

矩陣a逆時針旋轉k*90而得到新的矩陣

repmat(x,[m,n,,,p])

建立乙個m*n*…*p維的矩陣,所有的元素均為x

sort(a)

對矩陣a公升序排序並返回排序後的矩陣,當a為二維矩陣時,分別對每一列進行排序

sort(a,dim)

對矩陣a公升序排序並返回排序後的矩陣,當dim為1時,分別對每一列進行排序;當dim為2時,對每一行進行排序

sort(a,dim,mode)

mode為『ascend』時,進行公升序排序;mode為descend時為降序排序

>> a=[1,2,3;-1,1,0;4,5,6]

a = 1 2 3

-110

4 5 6

>> sort(a)

ans =

-110

1 2 3

4 5 6

三、矩陣下標

矩陣的索引分為雙下標索引和單下標索引兩種。

下面是一些矩陣下標操作的函式。

函式名稱

函式功能

a(:,j)

返回二維矩陣中第j列列向量

a(i,:)

返回二維矩陣中第i行行向量

a(:,j:k)

返回二維矩陣a中第j列到第k列列向量組成的子陣

a(i:k,:)

返回二維矩陣a中第i行到第k行行向量組成的子陣

a(:)

將矩陣中的每一列合併成乙個長的列向量

四、矩陣資訊

1、獲取矩陣的元素個數

>> a

a = 123

-110

456>> numel(a)

ans =

9

2、獲取矩陣各維度的長度

>> size(a)

ans =

33

3、獲取矩陣維數

>> ndims(a)

ans =

2

matlab的矩陣基礎

函式 說明rand 隨機矩陣 true和false 邏輯矩陣,元素全為1or0 zeros 元素都為0的矩陣 ones 元素都為1的矩陣 eye對角矩陣 diag 變或求對角 mat 1 diag v 把向量v變為對角矩陣 mat 2 diag mat 求矩陣mat的對角元素 函式說明 cat di...

MATLAB矩陣基礎知識 01

1 zeros y zeros m 建立m m的元素全為0的矩陣傳遞給y。y zeros m,n 建立m n的元素全為0的矩陣傳遞給y。y zeros size x 建立乙個和x大小一樣的元素全為0的矩陣傳遞給y。2 ones 與zeros 函式用法相同,只不過元素全為1。3 eye y eye m...

Matlab的線性代數矩陣基礎

我們知道,matlab是乙個和強大的高效程式語言,無論在數學大規模運算和影象操作上都是佔據很大市場比率的。但是呢matlab是基於矩陣的資料結構的語言,所以需要深刻掌握matlab語言,需要了解矩陣在它的語法中的運用。下面是本人在學習matlab時,總結的線性代數知識。一 matlab的矩陣建立和操...