2021/10/31

本ページではOMRON NX/NJシリーズ向けの行列演算ライブラリを紹介しています。
行列の加算、減算、定数倍、アダマール積、行列積、転置行列、逆行列、行列式の計算などを実装できます。

サンプル一覧

加算 (matADD)

行列の加算
入出力
a
行列 [0..9,0..9]
b
行列 [0..9,0..9]
result
行列 [0..9,0..9]

行列の加算の例
入出力
a
\begin{bmatrix} 1,&2,&3 \\ 2,&3,&4 \\ 3,&4,&5 \\ \end{bmatrix}
b
\begin{bmatrix} 3,&2,&1 \\ 4,&3,&2 \\ 5,&4,&3 \\ \end{bmatrix}
result
\begin{bmatrix} 4,&4,&4 \\ 6,&6,&6 \\ 8,&8,&8 \\ \end{bmatrix}

計算式

\[ \begin{bmatrix} a_{11} & a_{12} & \ldots & a_{1n} \\ a_{21} & a_{22} & \ldots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{nl} & a_{n2} & \ldots & a_{nn} \end{bmatrix} + \begin{bmatrix} b_{11} & b_{12} & \ldots & b_{1n} \\ b_{21} & b_{22} & \ldots & b_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ b_{nl} & b_{n2} & \ldots & b_{nn} \end{bmatrix} = \begin{bmatrix} a_{11}+b_{11} & a_{12}+b_{12} & \ldots & a_{1n}+b_{1n} \\ a_{21}+b_{21} & a_{22}+b_{22} & \ldots & a_{2n}+b_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{nl}+b_{nl} & a_{n2}+b_{n2} & \ldots & a_{nn}+b_{nn} \end{bmatrix} \]


減算 (vecSUB)

行列の減算
入出力
a
行列 [0..9,0..9]
b
行列 [0..9,0..9]
result
行列 [0..9,0..9]

行列の減算の例
入出力
a
\begin{bmatrix} 1,&2,&3 \\ 2,&3,&4 \\ 3,&4,&5 \\ \end{bmatrix}
b
\begin{bmatrix} 3,&2,&1 \\ 4,&3,&2 \\ 5,&4,&3 \\ \end{bmatrix}
result
\begin{bmatrix} -2,&0,&2 \\ -2,&0,&2 \\ -2,&0,&2 \\ \end{bmatrix}

計算式

\[ \begin{bmatrix} a_{11} & a_{12} & \ldots & a_{1n} \\ a_{21} & a_{22} & \ldots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{nl} & a_{n2} & \ldots & a_{nn} \end{bmatrix} - \begin{bmatrix} b_{11} & b_{12} & \ldots & b_{1n} \\ b_{21} & b_{22} & \ldots & b_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ b_{nl} & b_{n2} & \ldots & b_{nn} \end{bmatrix} = \begin{bmatrix} a_{11}-b_{11} & a_{12}-b_{12} & \ldots & a_{1n}-b_{1n} \\ a_{21}-b_{21} & a_{22}-b_{22} & \ldots & a_{2n}-b_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{nl}-b_{nl} & a_{n2}-b_{n2} & \ldots & a_{nn}-b_{nn} \end{bmatrix} \]


定数倍 (matMUL)

行列の定数倍
入力
k
倍率
入出力
a
行列 [0..9,0..9]
result
行列 [0..9,0..9]

行列の定数倍の例
入力
k
2.0
入出力
a
\begin{bmatrix} 1,&2,&3 \\ 2,&3,&4 \\ 3,&4,&5 \\ \end{bmatrix}
result
\begin{bmatrix} 2,&4,&6 \\ 4,&6,&8 \\ 6,&8,&10 \\ \end{bmatrix}

計算式

\[ k \begin{bmatrix} a_{11} & a_{12} & \ldots & a_{1n} \\ a_{21} & a_{22} & \ldots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{nl} & a_{n2} & \ldots & a_{nn} \end{bmatrix} = \begin{bmatrix} ka_{11} & ka_{12} & \ldots & ka_{1n} \\ ka_{21} & ka_{22} & \ldots & ka_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ ka_{nl} & ka_{n2} & \ldots & ka_{nn} \end{bmatrix} \]


アダマール積 (matMultiply)

アダマール積
入出力
a
行列 [0..9,0..9]
b
行列 [0..9,0..9]
result
行列 [0..9,0..9]

アダマール積の例
入出力
a
\begin{bmatrix} 1,&2,&3 \\ 2,&3,&4 \\ 3,&4,&5 \\ \end{bmatrix}
b
\begin{bmatrix} 3,&2,&1 \\ 4,&3,&2 \\ 5,&4,&3 \\ \end{bmatrix}
result
\begin{bmatrix} 3,&4,&3 \\ 8,&9,&8 \\ 15,&16,&15 \\ \end{bmatrix}

計算式

\[ \begin{bmatrix} a_{11} & a_{12} & \ldots & a_{1n} \\ a_{21} & a_{22} & \ldots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{nl} & a_{n2} & \ldots & a_{nn} \end{bmatrix} \circ \begin{bmatrix} b_{11} & b_{12} & \ldots & b_{1n} \\ b_{21} & b_{22} & \ldots & b_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ b_{nl} & b_{n2} & \ldots & b_{nn} \end{bmatrix} = \begin{bmatrix} a_{11}b_{11} & a_{12}b_{12} & \ldots & a_{1n}b_{1n} \\ a_{21}b_{21} & a_{22}b_{22} & \ldots & a_{2n}b_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{nl}b_{nl} & a_{n2}b_{n2} & \ldots & a_{nn}b_{nn} \end{bmatrix} \]


内積 (matDot)

行列の内積
入出力
a
行列 [0..9,0..9]
b
行列 [0..9,0..9]
出力
out
結果

行列の内積の例
入出力
a
\begin{bmatrix} 1,&2,&3 \\ 2,&3,&4 \\ 3,&4,&5 \\ \end{bmatrix}
b
\begin{bmatrix} 3,&2,&1 \\ 4,&3,&2 \\ 5,&4,&3 \\ \end{bmatrix}
出力
out
81

計算式

\[ \begin{bmatrix} a_{11} & a_{12} & \ldots & a_{1n} \\ a_{21} & a_{22} & \ldots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{nl} & a_{n2} & \ldots & a_{nn} \end{bmatrix} \bullet \begin{bmatrix} b_{11} & b_{12} & \ldots & b_{1n} \\ b_{21} & b_{22} & \ldots & b_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ b_{nl} & b_{n2} & \ldots & b_{nn} \end{bmatrix} \]


行列積 (matCross)

行列積
入出力
a
行列 [0..9,0..9]
b
行列 [0..9,0..9]
出力
result
行列 [0..9,0..9]

行列積の例
入出力
a
\begin{bmatrix} 1,&2,&3 \\ 2,&3,&4 \\ 3,&4,&5 \\ \end{bmatrix}
b
\begin{bmatrix} 3,&2,&1 \\ 4,&3,&2 \\ 5,&4,&3 \\ \end{bmatrix}
出力
result
\begin{bmatrix} 26,&20,&14 \\ 38,&29,&20 \\ 50,&38,&26 \\ \end{bmatrix}

計算式

\[ \begin{bmatrix} a_{11} & a_{12} & \ldots & a_{1n} \\ a_{21} & a_{22} & \ldots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{nl} & a_{n2} & \ldots & a_{nn} \end{bmatrix} \times \begin{bmatrix} b_{11} & b_{12} & \ldots & b_{1n} \\ b_{21} & b_{22} & \ldots & b_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ b_{nl} & b_{n2} & \ldots & b_{nn} \end{bmatrix} \]


転置行列 (matT)

行列の転置行列
入出力
a
行列 [0..9,0..9]
result
行列 [0..9,0..9]

行列の転置行列の例
入出力
a
\begin{bmatrix} 1,&2,&3 \\ 4,&5,&6 \\ 7,&8,&9 \\ \end{bmatrix}
result
\begin{bmatrix} 1,&4,&7 \\ 2,&5,&8 \\ 3,&6,&9 \\ \end{bmatrix}

計算式

\[ ^tA= \begin{bmatrix} a_{11} & a_{12} & \ldots & a_{1n} \\ a_{21} & a_{22} & \ldots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{nl} & a_{n2} & \ldots & a_{nn} \end{bmatrix} = \begin{bmatrix} a_{11} & a_{21} & \ldots & a_{nl} \\ a_{12} & a_{22} & \ldots & a_{n2} \\ \vdots & \vdots & \ddots & \vdots \\ a_{1n} & a_{2n} & \ldots & a_{nn} \end{bmatrix} \]


逆行列 (matInv)

逆行列
入出力
a
行列 [0..9,0..9]
result
行列 [0..9,0..9]

逆行列の例
入出力
a
\begin{bmatrix} 1,&2,&0 \\ -1,&1,&2 \\ 2,&0,&1 \\ \end{bmatrix}
result
\begin{bmatrix} 0.09,&-0.18,&0.36 \\ 0.45,&0.09,&-0.18 \\ -0.18,&0.36,&0.27 \\ \end{bmatrix}

計算式

\[ A^{-1}= \begin{bmatrix} a_{11} & a_{12} & \ldots & a_{1n} \\ a_{21} & a_{22} & \ldots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{nl} & a_{n2} & \ldots & a_{nn} \end{bmatrix} \]


行列式の計算 (matDet)

行列式の計算
入出力
a
行列 [0..9,0..9]
出力
out
計算結果

行列式の計算の例
入出力
a
\begin{bmatrix} 2,&-2,&4 \\ 2,&-1,&6 \\ 3,&-2,&12 \\ \end{bmatrix}
出力
out
8.0

計算式

\[ \begin{bmatrix} a_{11} & a_{12} & \ldots & a_{1n} \\ a_{21} & a_{22} & \ldots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{nl} & a_{n2} & \ldots & a_{nn} \end{bmatrix} \]



この記事へのコメント