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=linspace(x1,x2):在x1和x2間生成100個線性分布的資料,相鄰的兩個資料的差保持不變。構成等差數列。
x=linspace(x1,x2,n): 在x1和x2間生成n個線性分布的資料,相鄰的兩個資料的差保持不變。構成等差數列。
4)函式logspace用來生成等比形式排列的行向量
x=logspace(x1,x2) 在x1和x2之間生成50個對數等分資料的行向量。構成等比數列,數列的第一項x(1)=10x1,x(50)=10x2
x=logspace(x1,x2,n) 在x1和x2之間生成n個對數等分資料的行向量。構成等比數列,數列的第一項x(1)=10x1,x(n)=10x2
注:向量的的轉置:x=(0,5)』
2、矩陣的建立
1)直接輸入:將資料括在中,同一行的元素用空格或逗號隔開,每一行可以用回車或是分號結束
如:a=[1,2,3;3,4,5],執行後:
a =
1 2 3
3 4 5
2)函式eye,生成單位矩陣
eye(n) :生成n*n階單位e
eye(m,n):生成m*n的矩陣e,對角線元素為1,其他為0
eye(size(a)):生成乙個矩陣a大小相同的單位矩陣
eye(m,n,classname):對角線上生成的元素是1,資料型別用classname指定。其資料型別可以是:duoble、single、int8、uint8、int16、uint16、int32、uint32 。
3)函式ones 用ones生成全1的矩陣
ones(n) : 生成n*n的全1矩陣
ones(m,n) : 生成m*n的全1矩陣
ones(size(a)) : 生成與矩陣a大小相同的全1矩陣
ones(m,n,p,…)生成m*n*p*….的全1的多維矩陣
ones(m,n,…,classname)制定資料型別為classname
4)函式zeros 函式zeros生成全0矩陣
zeros(n):生成n*n的全0矩陣
zeros(m,n:)生成m*n的全0矩陣
zeros(size(a)): 生成與矩陣a大小相同的全0矩陣
zeros (m,n,p,…)生成m*n*p*….的全0的多維矩陣
zeros (m,n,…,classname)指定資料型別為classname
5)函式rand 函式rand用來生成[0,1]之間均勻分布的隨機函式,其呼叫格式是:
y=rand:生成乙個隨機數
y=rand(n):生成n*n的隨機矩陣
y=rand(m,n):生成m*n的隨機矩陣
y=rand(size(a)):生成與矩陣a大小相同的隨機矩陣
y=rand(m,n,p,…):生成m*n*p*…的隨機數多維陣列
6)函式randn 函式rand用來生成服從正態分佈的隨機函式,其呼叫格式是:
y=randn:生成乙個服從標準正態分佈的隨機數
y=randn(n):生成n*n的服從標準正態分佈的隨機矩陣
y=randn(m,n):生成m*n的服從標準正態分佈的隨機矩陣
y=randn(size(a)):生成與矩陣a大小相同的服從標準正態分佈的隨機矩陣
y=randn(m,n,p,…):生成m*n*p*…的服從標準正態分佈的隨機數多維陣列
3、矩陣元素的提取與替換
1) 單個元素的提取
如:a=[1,2,3;3,4,5],執行後:
a =
1 2 3
3 4 5
輸入b=a(1,2)
b =2
2) 提取矩陣中某一行的元素,
如:a=[1,2,3;3,4,5],執行後:
a =
1 2 3
3 4 5
輸入b=a(1,:)
b =1 2 3
3) 提取矩陣中某一列:
如:a=[1,2,3;3,4,5],執行後:
a =
1 2 3
3 4 5
輸入b=a(:,1)
b = 1
3 4) 提取矩陣中的多行元素
如:a=[1,2,3;3,4,5],執行後:
a =
1 2 3
3 4 5
輸入b=a([1,2],:)
b =1 2 3
3 4 5
5) 提取矩陣中的多列元素
如:a=[1,2,3;3,4,5],執行後:
a =
1 2 3
3 4 5
輸入b=a(:,[1,3])
b =1 3
3 5
6) 提取矩陣中多行多列交叉點上的元素
如:a=[1,2,3;3,4,5],執行後:
a =
1 2 3
3 4 5
輸入b=a([1,2],[1,3])
b =1 3
3 5
7) 單個元素的替換:
如:a=[1,2,3;3,4,5],執行後:
a =
1 2 3
3 4 5
輸入:a(2,3)=-1
a =1 2 3
3 4 -1
4、矩陣元素的重排和複製排列
1) 矩陣元素的重排
b=reshape(a,m,n):返回的是乙個m*n矩陣b,矩陣b的元素就是矩陣a的元素,若矩陣a的元素不是m*n個則提示錯誤。
b=reshape(a,m,n,p):返回的是乙個多維的陣列b,陣列b中的元素個數和矩陣a中的元素個數相等
b=reshape(a,…,,…):可以預設其中的乙個維數
b=reshape(a,siz) : 由向量siz指定陣列b的維數,要求siz的各元素之積等於矩陣a的元素個數
2) 矩陣的複製排列函式是repmat
b=repmat(a,n):返回b是乙個n*n塊大小的矩陣,每一塊矩陣都是a
b=repmat(a,m,n):返回值是由m*n個塊組成的大矩陣,每乙個塊都是矩陣a。
b=repmat(a,[m,n,p,…]):返回值b是乙個多維陣列形式的塊,每乙個塊都是矩陣a
5、矩陣的翻轉和旋轉
1)矩陣的左右翻轉左右翻轉函式是fliplr,呼叫格式:
b=fliplr(a):將矩陣a左右翻轉成矩陣b。
輸入:a=[1,2,3;3,4,2]
a =1 2 3
3 4 2
輸入:b=fliplr(a)
b =3 2 1 2
4 3
2)矩陣上下翻轉函式:flipud,呼叫格式:
b=flipud(a):把矩陣a上下翻轉成矩陣b
3) 多維陣列翻轉函式:flipdim,呼叫格式:
b=flipdim(a,dim):把矩陣或多維陣列a沿指定維數翻轉成b
4) 矩陣的旋轉函式:rot90,呼叫格式:
b=rot90(a):矩陣b是矩陣a沿逆時針方向旋轉90
。得到的
b=rot90(a,k):矩陣b是矩陣a沿逆時針方向旋轉k*90
。得到的(要想順時針旋轉,k取-1)
6、矩陣的生成與提取函式
1) 對角線函式對角線函式diag既可以用來生成矩陣,又可以來提取矩陣的對角線元素,其呼叫格式:
a)a=diag(v,k):當v是有n個元素的向量,返回矩陣a是行列數為n+|k|的方陣。向量v的元素位於a的第k條對角線上。k=0 對應主對角線,k>0對應主對角線以上,k<0對應主對角線以下。
b)a=diag(v):將向量v的元素放在方陣a的主對角線上,等同於a=diag(v,k)中k=0的情況。
c)v=diag(a,k):提取矩陣a的第k條對角線上的元素於列向量v中。
d)v=diag(a):提取矩陣a的主對角線元素於v中,這種呼叫等同於v=diag(a,k)中k=0的情況。
2) 下三角陣的提取用函式tril,呼叫格式:
a)l=tril(a): 提取矩陣a的下三角部分
b)l=tril(a,k):提取矩陣a的第k條對角線以下部分。k=0 對應主對角線,k>0對應主對角線以上,k<0對應主對角線以下。
3) 上三角陣的提取函式triu,呼叫格式:
a)u=triu(a): 提取矩陣a的上三角部分元素
b)u=triu(a,k): 提取矩陣a的第k條對角線以上的元素。k=0 對應主對角線,k>0對應主對角線以上,k<0對應主對角線以下。
MATLAB矩陣基本操作1
matlab 矩陣操作 結構矩陣 和單元矩陣 結構矩陣 格式為 結構矩陣元素.成員名 表示式a 1 x1 10 a 1 x2 liu a 1 x3 10 21 34 78 a 2 x1 11 a 2 x2 xia a 2 x3 11 121 34 78 a 3 x1 12 a 3 x2 cai a ...
MATLAB基本矩陣函式和操作
eye 單位矩陣 zeros 全零矩陣 ones 全1矩陣 rand 均勻分布隨機陣 genmarkov 生成隨機markov矩陣 linspace 線性等分向量 logspace 對數等分向量 logm 矩陣對數運算 cumprod 矩陣元素累計乘 cumsum 矩陣元素累計和 toeplitz ...
MATLAB基本矩陣函式和操作
eye 單位矩陣 zeros 全零矩陣 ones 全1矩陣 rand 均勻分布隨機陣 genmarkov 生成隨機markov矩陣 linspace 線性等分向量 logspace 對數等分向量 logm 矩陣對數運算 cumprod 矩陣元素累計乘 cumsum 矩陣元素累計和 toeplitz ...