Matlab入门基础 note2——向量和矩阵基础
Matlab Chapter II
向量
*表示向量數(shù)乘;
'表示向量轉置;
matlab允許向量和合并:w = [ u; v ]或者f = [ u v ];
我們可以用x = [0(初值):2(步長*可以為負):10(終止值)]來創(chuàng)造一個從0到10點偶數(shù)向量組:
.^表示向量的乘方,而不能直接用^符號
linspace(a,b,n)可以創(chuàng)建a、b之間含有n個等差元素的向量;
向量運算
dot(a,b)或者.*均可以表示向量點乘;
我們可以用如下命令來計算向量的模:
cross(A,B)表示向量的叉乘,叉乘的向量必須是三維的:
>> A = [ 1 2 3]; B = [ 2 3 4]; >> C = cross(A, B) C =-1 2 -1V(i)引用v的第i個元素;
v(:)將引用全部元素;
v(4:6)表示一定范圍內的元素,例如:
表示從A中選取第4個到第6個元素組成新的向量
矩陣
.*表示矩陣的數(shù)組乘法(而非矩陣乘法),意味著對應元素相乘;
*則表示矩陣乘法,它要求運算的矩陣符合矩陣相乘的條件;
./和.\分別表示數(shù)組的右除和左除;
eye(n)可以創(chuàng)建nxn的單元矩陣,zeros(n)可以創(chuàng)建nxn的零矩陣,ones(n)可以創(chuàng)建nxn的1矩陣;
引用矩陣元素
Matlab中矩陣的單個元素或整列都可以被引用:
A = [ 1 2 3; 4 5 6; 7 8 9]
我們可以用`A(m,n)選出m行n列的元素:
可以用A(:,i)引用第i列的所有元素:
>> A (:,2) ans =258- 可以用A(:,i:j)選出從第i列到第j列的所有元素;
- 可以用A(m:n,i:j)或A([m,n],[i,j])選取子矩陣;
可以通過空數(shù)組來刪除矩陣的行或列:
>> A(2,:)=[] A = 1 2 37 8 9上述操作將3x3矩陣變?yōu)?x3矩陣;
行列式與線性求解
det(A)表示計算矩陣A的行列式:
我們可以用行列式判斷矩陣解的情況,當我們需要表示多個解時,我們就需要一組基礎解系:
null()函數(shù)表示了矩陣的零空間,我們可以用null(A,'r')來返回一組有理基礎解:
- rank(A)=n 等價于 null(A)為nx0的空矩陣,即Ax=b有唯一解;
秩&逆矩陣
矩陣的秩是矩陣向量間線性無關性的度量,可以用rank(A)求出;
我們也可以通過秩來判斷解的情況:
對于mxn階矩陣Ax=b而言,當且僅當rank(A)=rank(A b)時系統(tǒng)有解; 如果秩等于n,則解唯一;如果秩小于n,則有無窮多解;
inv(A)表示A的逆矩陣,當且僅當det(A)不等于0時,逆矩陣才存在,我們稱其為可逆矩陣或非奇異矩陣(這樣的矩陣一定是滿秩的);
- matlab同樣可以求偽逆矩陣(或廣義逆矩陣):pinv(A)
梯形陣
rref(A)可以求出A的最簡梯形陣,例如對于幻方矩陣而言,手算是十分復雜的,而matlab可以輕易處理:
- magic(n)是求一個n階幻方矩陣的語法,這樣的矩陣各行和列包括對角線的和都相等,我們不妨來驗證一下
sum語法結構: sum(A,dim)
A表示矩陣, dim={1,2};1表示對列求和, 2表示對行進行求和
我們繼續(xù)以剛剛的A為例:
>> sum(A,1)ans =65 65 65 65 65 >> sum(A,2)ans =65 65 65 65 65再通過一個簡單的循環(huán)對對角線求和:
>> e=0;d=0;for i=1:5; j=6-i;b=A(i,i); c=A(i,j);d=d+b; e=e+c;end; e,de =65 d =65不難看到行、列與對角線之和均相等
矩陣分解
matlab可以快速對矩陣進行各類分解:
- [L,U]=lu(A)表示對A進行LU分解;
總結
以上是生活随笔為你收集整理的Matlab入门基础 note2——向量和矩阵基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿里技术实战:数十万云服务器如何高效运维
- 下一篇: 使用Atoum测试PHP代码-PHPUn