9.スケーリング/ピボッティング
12.連立方程式の解法(反復法)
| 行列基本計算 | ||
|---|---|---|
| FuncMatSum(mat1, mat2) | 行列の和 | |
| FuncMatDif(mat1, mat2) | 行列の差 | |
| FuncMatScl(mat1, scl) | 行列のスカラー倍 | |
| FuncMatPro(mat1, mat2, Optional rlim) | 行列の積 | |
| FuncMatHad(mat1, mat2, Optional rlim) | アダマール積 | |
| FuncMatDiad(mat1, mat2, Optional rlim) | ダイアド積 | |
| 戻り値 | 行列の和/差の結果(二次配列)。 |
|---|---|
|
mat1 mat2 |
計算対象とする二次配列。 mat1、mat2ともに同じサイズの行列。 |
Sub test()
Dim tmp As Variant
Dim matA As Variant
Dim matB As Variant
’セル値を配列に代入
matA = Range("B3:D5").Value
matB = Range("F3:H5").Value
’行列の和
tmp = FuncMatSum(matA, matB)
’結果出力
Range(Cells(3, 10), Cells(5, 12)).Value = tmp
End Sub
FuncMatSum、FuncMatDifは、Excel関数としても使えます。
| 戻り値 | スカラー倍した行列。 |
|---|---|
| mat1 | スカラー倍する対象行列。 |
| scl | スカラー倍の数値。 |
Sub test()
Dim tmp As Variant
Dim matA As Variant
Dim scl As Double
’セル値を配列に代入
matA = Range("B3:D5").Value
scl = Range("F3").Value
’行列の和
tmp = FuncMatScl(matA, scl)
’結果出力
Range(Cells(3, 8), Cells(5, 10)).Value = tmp
End Sub
FuncMatSclは、Excel関数としても使えます。
| 戻り値 | 行列積の結果。 |
|---|---|
|
mat1 mat2 |
計算対象行列(二次配列)。 |
| rlim | 計算丸め誤差の閾値(省略可)。 |
Sub test()
Dim tmp As Variant
Dim matA As Variant
Dim matB As Variant
’セル値を配列に代入
matA = Range("B3:D5").Value
matB = Range("F3:H5").Value
’行列の積
tmp = FuncMatPro(matA, matB)
’結果出力
Range(Cells(3, 10), Cells(5, 12)).Value = tmp
End Sub
FuncMatProは、Excel関数としても使えます。
行列の積は、Excel関数も準備されています(MMULT関数)
| 戻り値 | アダマール積結果。 |
|---|---|
|
mat1 mat2 |
計算対象行列(二次配列)。 |
| rlim | 計算丸め誤差の閾値(省略可)。 |
Sub test()
Dim tmp As Variant
Dim matA As Variant
Dim matB As Variant
’セル値を配列に代入
matA = Range("B3:D5").Value
matB = Range("F3:H5").Value
’アダマール積
tmp = FuncMatHad(matA, matB)
’結果出力
Range(Cells(3, 10), Cells(5, 12)).Value = tmp
End Sub
FuncMatHadは、Excel関数としても使えます。
| 戻り値 | ダイアド積結果。 |
|---|---|
|
mat1 mat2 |
計算対象行列(二次配列)。 |
| rlim | 計算丸め誤差の閾値(省略可)。 |
Sub test()
Dim tmp As Variant
Dim matA As Variant
Dim matB As Variant
’セル値を配列に代入
matA = Range("B3:D5").Value
matB = Range("F3:H5").Value
’行列の和
tmp = FuncMatDiad(matA, matB)
’結果出力
Range(Cells(3, 10), Cells(3 + UBound(tmp, 1), 10 + UBound(tmp, 2))).Value = tmp
End Sub
FuncMatDiadは、Excel関数としても使えます。