MATMUL

変形組込み関数 (総称):数値型または論理型行列の行列乗算を実行します。

形式

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 の最後の (または唯一の) 次元の大きさと等しくなくてはなりません。

結果

結果は,「数値代入文の変換規則」に示した規則をもとに,引数のデータ型によって決まる型を持つ配列です。結果の次元数と形状は,引数の次元数と形状に次のように依存します。

引数が数値型である場合,結果の要素 (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

関連情報

PRODUCTTRANSPOSE

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