MATLAB行列
22750 ワード
1.マトリクスの作成
特殊マトリクスの直接作成
関数#カンスウ#
機能
関数#カンスウ#
機能
compan
伴随行列の作成
magic
キューブマトリクスの作成
diag
対角行列の作成
ones
全1行列の作成
eye
単位行列の作成
rand
均一分散ランダムマトリクスの作成
gallery
テストマトリックスの作成
randn
正規分布ランダムマトリクスの作成
hadamars
Hadamard行列の作成
rosser
クラシック対称フィーチャー値テストマトリクスの作成
hilb
Hilbert行列の作成
wilkinson
Wilkinsonフィーチャー値テストマトリクスの作成
invhilb
Hilbertマトリクスを作成するには
zeros
全0行列の作成
【例】2ビット特殊配列の作成
>> clear all;
>> magic(3) % 3*3
ans =
8 1 6
3 5 7
4 9 2
>> rand(2,4) % 2*4
ans =
0.8147 0.1270 0.6324 0.2785
0.9058 0.9134 0.0975 0.5469
>> randn(2,4) % 2*4
ans =
3.5784 -1.3499 0.7254 0.7147
2.7694 3.0349 -0.0631 -0.2050
>> ones(3,2) % 3*2 1
ans =
1 1
1 1
1 1
>> zeros(2,2) % 2*2 0
ans =
0 0
0 0
>> eye(3) % 3*3
ans =
1 0 0
0 1 0
0 0 1
>> hilb(4) % 4*4 Hilbert
ans =
1.0000 0.5000 0.3333 0.2500
0.5000 0.3333 0.2500 0.2000
0.3333 0.2500 0.2000 0.1667
0.2500 0.2000 0.1667 0.1429
>> hadamard(4) % 4*4 Hadamard
ans =
1 1 1 1
1 -1 1 -1
1 1 -1 -1
1 -1 -1 1
2.行列の演算
1)マトリックスの基本演算
アクションシンボル
説明
アクションシンボル
説明
+
マトリックス加算
/
マトリックス左除
-
マトリックス減算
.
マトリックスの点乗演算
*
マトリックス乗算
logm
マトリックスの対数演算
^
行列のべき乗
expm
マトリックスの指数演算
\
マトリックス右除
sqrtm
マトリックスの開方演算
2)マトリックスの変形演算
へんけいかんすう
関数名
説明
関数名
説明
rot90
マトリクスを反時計回りに90°回転
flipdim
マトリックスの次元要素の反転
flipud
マトリックス上下反転
shiftdim
マトリックスの要素シフト
fliplr
マトリックス左右反転
reshape
マトリックスのマージ
【例】マトリックスの形状を変える
>> A = [1 2 3; 4 5 6; 7 8 9;10 11 12]
A =
1 2 3
4 5 6
7 8 9
10 11 12
>> A3 = reshape(A,3,4) %
A3 =
1 10 8 6
4 2 11 9
7 5 3 12
>> A1 = reshape(A,2,6) %
A1 =
1 7 2 8 3 9
4 10 5 11 6 12
>> A = magic(3)
A =
8 1 6
3 5 7
4 9 2
>> flipud(A) % A
ans =
4 9 2
3 5 7
8 1 6
>> fliplr(A) % A
ans =
6 1 8
7 5 3
2 9 4
>> rot90(A) % A 90°
ans =
6 7 2
1 5 9
8 3 4
>> rot90(A,3) % A 270°
ans =
4 3 8
9 5 1
2 7 6
>> flipdim(A,2) % A
ans =
6 1 8
7 5 3
2 9 4
3)行列の特殊計算
1.行列式の転置:演算子'''2.行列の行列式:det(A)関数3.行列の逆と偽の逆:inv(A)関数とpinv(A)関数4.行列とベクトルの範数を求めます:norm関数5.行列のランク:rank関数6.マトリックスのトレース:マトリックス対角線要素の和と特徴値の和、関数trace(A)
4)空行列による行列要素の削除
MATLABでは,[]を空行列として定義する.X=[]変数Xに行列を空にします.したがって,ある要素をマトリクスから削除し,空マトリクスにする方法が有効である.
>> A = [1 2 3 4 5 6;7 8 9 10 11 12;13 14 15 16 17 18]
A =
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
>> A(:,[2,4]) = [] % A(:,[2,4]) = [] A(:,2:2:4) = []
A =
1 3 5 6
7 9 11 12
13 15 17 18
3.マトリクスの分解
マトリクスの分解演算とは,与えられたマトリクスを特殊マトリクス積に分解する過程である.
1)cholesky分解
R=chol(A):cholesky分解(コリー分解)因子R=chol(A,‘lower’):行列Aを下三角行列に分解する
2)直交分解
行列の直交分解は、行列Aを直交行列と上三角行列の積に分解する.[Q,R]=qr(A):直交行列Qと上三角行列Rを返し,A=QRを満たす.
3)LU分解
行列の三角分解とも呼ばれ、一つの行列を一つの下三角行列Lと一つの上三角行列Uの積、すなわちA=LUに分解する.[L,U]=lu(A):Lは単位下三角行列またはその変換形式であり、Uは上三角行列[L,U,P]=lu(A):Lは単位下三角行列、Uは上三角行列、Pは置換行列であり、LU=PAを満たす.
4)固有値分解
d=eig(A):行列Aの全特徴値を求め、ベクトルdを構成する.d=eig(A,B):行列Aと行列Bの特徴値を求め、A,Bは行列である.[V,D]=eig(A):行列Aの全特徴値を求めて対角行列Dを構成し,Aの特徴ベクトルを求めてVの列ベクトルを構成する.[V,D]=eig(A,‘nobalance’):Aの特徴値と特徴ベクトルを直接求める.[V,D]=eig(A,B):方程式A,Bの特徴値を求め、対角行列Dを構成し、特徴ベクトルがVの列ベクトルを構成し、A*V=B*V*Dを求める.
>> X = pascal(4) %
X =
1 1 1 1
1 2 3 4
1 3 6 10
1 4 10 20
>> [V,D] = eig(X)
V =
0.3087 -0.7873 0.5304 0.0602
-0.7231 0.1632 0.6403 0.2012
0.5946 0.5321 0.3918 0.4581
-0.1684 -0.2654 -0.3939 0.8638
D =
0.0380 0 0 0
0 0.4538 0 0
0 0 2.2034 0
0 0 0 26.3047