変形組込み関数 (総称):数値型または論理型行列の行列乗算を実行します。
形式
result = MATMUL (matrix_a, matrix_b)
matrix_a
(入力) 次元数 1 または 2 の配列。数値型 (整数,実数,または複素数) か論理型でなくてはなりません。
matrix_b
(入力) 次元数 1 または 2 の配列。matrix_a が数値型である場合には数値型,matrix_a が論理型である場合には論理型でなくてはなりません。
少なくとも 1 つの引数が次元数 2 でなくてはなりません。matrix_b の第 1 次元 (または唯一の次元) の大きさは,matrix_a の最後の (または唯一の) 次元の大きさと等しくなくてはなりません。
結果
結果は,「数値代入文の変換規則」に示した規則をもとに,引数のデータ型によって決まる型を持つ配列です。結果の次元数と形状は,引数の次元数と形状に次のように依存します。
matrix_a の形状が (n, m) で,matrix_b の形状が (m, k) である場合,結果は形状 (n, k) の次元数 2 の配列です。
matrix_a の形状が (m) で,matrix_b の形状が (m, k) である場合,結果は形状 (k) の次元数 1 の配列です。
matrix_a の形状が (n, m) で,matrix_b の形状が (m) である場合,結果は形状 (n) の次元数 1 の配列です。
引数が数値型である場合,結果の要素 (i, j) は値 SUM ((matrix_a の行 i) * (matrix_b の列 j)) となります。引数が論理型である場合,結果の要素 (i, j) は値 ANY ((matrix_a の行 i) .AND. (matrix_b の列 j)) となります。
互換性
CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB
関連情報
例
A が行列
[ 2 3 4 ] [ 3 4 5 ]
B が行列
[ 2 3 ] [ 3 4 ] [ 4 5 ]
X がベクトル (1, 2),Y がベクトル (1, 2, 3) であるとします。
MATMUL (A, B) の結果は,値
[ 29 38 ] [ 38 50 ]
を持つ行と行の積 AB となります。
MATMUL (X, A) の結果は,値 (8, 11, 14) を持つベクトルと行の積 XA となります。
MATMUL (A, Y) の結果は,値 (20, 26) を持つ行とベクトルの積 AY となります。
以下に他の例を示します。
INTEGER a(2,3), b(3,2), c(2), d(3), e(2,2), f(3), g(2) a = RESHAPE((/1, 2, 3, 4, 5, 6/), (/2, 3/)) ! a は 1 3 5 ! 2 4 6 です。 b = RESHAPE((/1, 2, 3, 4, 5, 6/), (/3, 2/)) ! b は 1 4 ! 2 5 ! 3 6 です。 c = (/1, 2/) ! c は [1 2] です。 d = (/1, 2, 3/) ! d は [1 2 3] です。 e = MATMUL(a, b) ! 22 49 ! 28 64 を返します。 f = MATMUL(c,a) ! [5 11 17] を返します。 g = MATMUL(a,d) ! [22 28] を返します。 WRITE(*,*) e, f, g END