MATMUL |
書式 | 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(:)) となる。 | ||||
引数 |
| ||||
戻り値 | 型、種別型パラメタは引数と同じである。 |
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)
実行例 |