目錄
矩陣:矩陣式數學上的概念,最早來自於方程組的係數及常數所構成的方針。作為一種變換或者對映算符的體現,矩陣運算有著明確而嚴格的數學規則。
陣列:計算機程式設計領域的概念。在matlab中其存在目的是為了使資料管理方便,操作簡單,命令形式自然,執行計算有效。
在matlab中,矩陣是以陣列的形式存在的,一維陣列相當於向量,二維陣列相當於矩陣,所以矩陣式陣列的子集。
直接賦值法構造簡單矩陣
簡單矩陣採用矩陣構造符號——方括號,同行的元素之間用,或者空格間隔,行與行之間用分號;。
例如:
>> a=[1 2 3;4 5 6;7 8 9]
a = 1 2 3
4 5 6
7 8 9
>> b=[1,2,3;4,5,6;7,8,9]
b = 1 2 3
4 5 6
7 8 9
>>
特殊矩陣
特殊矩陣的構造一般都是用matlab特定的函式來實現。
函式名稱
函式功能
ones(n)
構建乙個n x n的1矩陣(矩陣的元素全部是1)
ones(m,n,.. p)
構建乙個m x n...p的1矩陣
ones( size(a))
構建乙個和矩陣a同樣大小的1矩陣
zeros(n)
構建乙個n x n的0矩陣(輸出矩陣的元素全部是0)
zeros(m, n,…, p)
構建乙個m x n x..x p的0矩陣
zeros(size(a))
構建乙個和矩陣a同樣大小的0矩陣
eye(n)
構建乙個n x n的單位矩陣
eye(m, n)
構建乙個m x n的單位矩陣
eye( size(a))
構建乙個和矩陣a同樣大小的單位矩陣
magic(n)
構建乙個n x n的矩陣,其每一行、每一列的元素之和都相等
rand(n)
構建乙個n x n的矩陣,其元素為0-1之間均勻分布的隨機數
rand(m,n,… p)
構建乙個m x n x..p的矩陣,其元素為0-1之間均勻分布的隨機數
randn (n)
構建乙個n x n的矩陣,其元素為零均值、單位方差的正態分佈隨機數
randn (m, n,. p)
構建乙個m x n x..p的矩陣,其元素為零均值、單位方差的正態分佈隨機數
diag(c2)
構建乙個n維的方陣,它的主對角線元素值取自向量x,其餘元素的值都為0
diag(a, k)
構建乙個由矩陣a第k條對角線的元素組成的列向量k=0為主對角線; k<0為下第k條對角線; k>0為上第k條對角線
diag(x, k)
構建乙個(n+|k|) x (n+|k|)維的矩陣,該矩陣的第k條對角線元素取自向量x,其餘元素都為0(關於引數k,參考上個命令)
triu(a)
構建乙個和a大小相同的上三角矩陣,該矩陣的主對角線上元素為a中相應元素,其餘元素都為0
triu(a, k)
構建乙個和a大小相同的上三角矩陣,該矩陣的第k條對角線及其以上元素為a中相應元素,其餘元素都為0
tril (a)
構建乙個和a大小相同的下三角矩陣,該矩陣的主對角線上元素為a中相應元素,其餘元素都為0
tril(a, k)
構建乙個和a大小相同的下三角矩陣,該矩陣的第k條對角線上及其以下元素為a中相應元素,其餘元素都為0
樣例:
>> magic(5)
ans =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
>>
向量、標量和空矩陣
向量:單行或單列的矩陣稱為向量。
標量:1 x 1的矩陣稱為標量,矩陣只有乙個元素
空矩陣:行和列數至少有乙個為0的矩陣。
空矩陣和0矩陣的區別:空矩陣內沒有任何元素不占用儲存空間。而0矩陣表示該矩陣中所有的元素全部為0,需要儲存空間。
矩陣大小及結構的改變一般也是由函式來實現。
函式名稱
函式功能
fliplr(a)
矩陣每一行均進行逆序排列
flipud(a)
矩陣每一列均進行逆序排列
flipdim(a, dim)
生成乙個在dim維矩陣a內的元素交換位置的多維矩陣
rot90(a)
生成乙個由矩陣a逆時針旋轉90度而得到的新矩陣
ro190(a,k)
生成乙個由矩陣a逆時針旋轉k×90.而得到的新矩陣
reshape(a, m, n)
生成乙個m x n x p維的矩陣,其元素以線性索引的順序從矩陣a中取得如果矩陣a中沒有mxnx.p個元素,將返回乙個錯誤資訊
repmat(a. [m n...p])
建立乙個和矩陣a有相同元素的mxnx.xp塊的多維矩陣
shiftdim(a, n)
矩陣的列移動n步。n為正數,矩陣向左移; n為負數,矩陣向右移
squeeze(a)
返回沒有空維的矩陣a
cat(dim,a, b)
將矩陣a和b組合成乙個dim維的多維矩陣
permute(a, order)
根據向量order來改變矩陣a中的維數順序
ipermute(a, order)
進行命令permute的逆變換
sort(a)
對一維或二維矩陣進行公升序排序,並返回排序後的矩陣;當a為二維矩陣時,對矩陣的每一列分別進行排序
sort(a, dim)
對矩陣按指定的方向進行公升序排序,並返回排序後的矩陣.當dim=1時,對矩陣的每一列排序dim=2時,對矩陣的每一行排序
sort(a, dim, mode)
mode為'ascend'時,進行公升序排序; mode為'descend'時,進行降序排序
[b, lx]=sort(a,...)
lx為排序後備元素在原矩陣中的行位置或列位置的索引
在matlab中二維陣列的數字索引分為雙下標索引和單下標索引。雙下標比較簡單就類似於座標的形式,而單下表索引需要注意。但下表索引的方式式採用列優先的方式對矩陣元素進行編號。如下圖中4x4矩陣的編號:15
91326
101437
111548
1216
矩陣下標訪問單個矩陣元素
常用的矩陣索引表示式:
索引表示式
函式功能
a(1)
將二維矩陣a重組為一維陣列,返回陣列中第乙個元素
a(:,j)
返回二維矩陣a中第j列列向量
a(i,:)
返回二維矩陣a中第i行行向量
a(:,j:k)
返回由二維矩陣a中的第j列到第k列列向量組成的子矩陣
a(i:k,:)
返回由二維矩陣a中的第i行到第k行行向量組成的子矩陣
a(i:k,j:l)
返回由二維矩陣a中的第i行到第k行行向量和第j列到第l列列向量的交集組成的子矩陣
a(: )
將矩陣a中的每列合併成乙個長的列向量
a(j:k)
返回乙個行向量,其元素為a(:)中的第j個元素到第k個元素
a([j1 j2 ...])
返回乙個行向量,其元素為a(:)中的第j1、j2元素
a(:,[j1 j2 ...])
返回矩陣a的第j1列、第j2列等的列向量
a([i1 i2 ...],: )
返回矩陣a的第i1行、第i2行等的行向量
a([i1 i2 ...],[j1 j2 ...])
返回矩陣第1行、第2行等和第j列、第2列等的元素
線性引用元素
訪問多個矩陣元素
sum(a(1:4,4)) %求第4列前四個元素的和
sum(a(:,4)) %求第4列所有元素的和
sum(a(:,end)) %求矩陣最後一列元素的和
b=a(1:3:10) %
MATLAB教程(一) 基本操作與矩陣輸入
操作符 運算結果被存放在乙個叫ans的臨時變數中 不清楚怎麼表達可以搜matlab官網的inference 巢狀運算 sin cos pi 可以分開計算為cos pi sin ans 從而使表示式更簡潔。定義 a 10 不可以寫成10 a 優先順序 自定義變數的優先順序最高,為了不覆蓋原來的意義,應...
Matlab向量 矩陣基本操作
1 向量的建立 1 直接輸入 行向量 a 1,2,3,4,5 列向量 a 1 2 3 4 5 2 用 生成向量 a j k 生成的行向量是a j,j 1,k a j d k 生成行向量a j,j d,j m d m fix k j d 3 函式linspace 用來生成資料按等差形式排列的行向量 x...
稀疏矩陣的基本操作
include include include includeusing namespace std template class sparsematrix sparsematrix int arr,size t row,size t col,const t invalid row row col ...