MATMUL
copyright

green dotMATMUL

書式 MATMUL(MATRIX_A,MATRIX_B)
機能 行列MATRIX_Aと行列MATRIX_Bの乗算をする。
行列は、数値型または論理型である。
(1)MATRIX_Aの形状が配列(n,m)でMATRIX_Bの形状が配列(m,k)で あるとき結果の形状は(n,k)となる。引数が数値型のとき、 結果の要素(i,j)の値は、
SUM(MATRIX_A(i,:)*MATRIX_B(:,j))
となり、引数が論理型のとき、結果の要素(i,j)の値は、
ANY(MATRIX_A(i,:) .AND.MATRIX_B(:,j))
となる。
(2)MATRIX_Aの形状が(m)であり、MATRIX_Bの形状が(m,k)である場合、 結果の形状は(k)となる。引数が数値型のとき、結果の要素(j)の値は、
SUM(MATRIX_A(:)*MATRIX_B(:,j))
となり、引数が論理型のとき、結果の要素(j)の値は、
ANY(MATRIX_A(:) .AND. MATRIX_B(:,j))
となる。
(3)MATRIX_Aの形状が(n,m)であり、MATRIX_Bの形状が(m)である場合、 結果の形状は(n)となる。引数が数値型のとき、結果の要素(i)の値は、
SUM(MATRIX_A(i,:)*MATRIX_B(:))
となり、引数が論理型のとき、結果の要素(i)の値は、
ANY(MATRIX_A(i,:) .AND. MATRIX_B(:))
となる。
引数
MATRIX_A :整数型,実数型,複素数型,論理型で1次元配列または2次元配列
MATRIX_B :型、種別型パラメタはVECTOR_Aと同じで1次元配列または2次元配列
戻り値 型、種別型パラメタは引数と同じである。

green dotサンプルプログラム

MATMULを計算する。
    INTEGER :: i
    INTEGER,DIMENSION(2,3) :: x
    INTEGER,DIMENSION(3,2) :: y
    INTEGER,DIMENSION(2,2) :: z
    x(1,:)=(/1, 0, 1/); x(2,:)=(/2, 0, 2/)
    y(1,:)=(/1, 2/); y(2,:)=(/0, 1/); y(3,:)=(/2, 0/)
    z=MATMUL(x,y)
    WRITE(*,'(2I2)') (z(i,:),i=1,2)

実行例
3 2 6 4
line-end