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