一、建立矩陣
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的矩陣建立和操...