下表描述了向量和矩陣乘法函數(shù):
函數(shù) | 描述 |
---|---|
dot_product(vector_a, vector_b) | 函數(shù)返回兩個(gè)輸入向量,它必須具有相同長度的標(biāo)量積。 |
matmul (matrix_a, matrix_b) | 它返回兩個(gè)矩陣的矩陣乘積,它必須是一致的,即具有相似大小 (m, k) 和 (k, n) |
實(shí)例
下面的例子演示了內(nèi)積:
program arrayDotProduct real, dimension(5) :: a, b integer:: i, asize, bsize asize = size(a) bsize = size(b) do i = 1, asize a(i) = i end do do i = 1, bsize b(i) = i*2 end do do i = 1, asize Print *, a(i) end do do i = 1, bsize Print *, b(i) end do Print*, 'Vector Multiplication: Dot Product:' Print*, dot_product(a, b) end program arrayDotProduct
當(dāng)上述代碼被編譯和執(zhí)行時(shí),它產(chǎn)生了以下結(jié)果:
1.00000000 2.00000000 3.00000000 4.00000000 5.00000000 2.00000000 4.00000000 6.00000000 8.00000000 10.0000000 Vector Multiplication: Dot Product: 110.000000
實(shí)例
下面的例子演示了矩陣乘法:
program matMulProduct integer, dimension(3,3) :: a, b, c integer :: i, j do i = 1, 3 do j = 1, 3 a(i, j) = i+j end do end do print *, 'Matrix Multiplication: A Matrix' do i = 1, 3 do j = 1, 3 print*, a(i, j) end do end do do i = 1, 3 do j = 1, 3 b(i, j) = i*j end do end do Print*, 'Matrix Multiplication: B Matrix' do i = 1, 3 do j = 1, 3 print*, b(i, j) end do end do c = matmul(a, b) Print*, 'Matrix Multiplication: Result Matrix' do i = 1, 3 do j = 1, 3 print*, c(i, j) end do end do end program matMulProduct
當(dāng)上述代碼被編譯和執(zhí)行時(shí),它產(chǎn)生了以下結(jié)果: