Matrix Calculations
Matrix-Vector Product
Matmul
matmul multiplies a rank-2 matrix by a rank-1 vector when their shapes line up.
Program
Play the program to scale a vector before multiplying it by a small matrix.
matrix_vector_product.f90
program matrix_vector_product_demo
implicit none
integer :: matrix(2, 2)
integer :: vector(2)
integer :: scale
integer :: result(2)
matrix = reshape([2, 1, 3, 4], [2, 2])
vector = [1, 2]
scale =
result = matmul(matrix, vector * scale)
print '(I0, 1X, I0)', result(1), result(2)
end program matrix_vector_product_demo
program matrix_vector_product_demo
implicit none
integer :: matrix(2, 2)
integer :: vector(2)
integer :: scale
integer :: result(2)
matrix = reshape([2, 1, 3, 4], [2, 2])
vector = [1, 2]
scale =
result = matmul(matrix, vector * scale)
print '(I0, 1X, I0)', result(1), result(2)
end program matrix_vector_product_demo
program matrix_vector_product_demo
implicit none
integer :: matrix(2, 2)
integer :: vector(2)
integer :: scale
integer :: result(2)
matrix = reshape([2, 1, 3, 4], [2, 2])
vector = [1, 2]
scale =
result = matmul(matrix, vector * scale)
print '(I0, 1X, I0)', result(1), result(2)
end program matrix_vector_product_demo
matmul
`matmul(matrix, vector)` performs a matrix-vector product.
shape match
The vector length must match the matrix column count.
scaled vector
Whole-array arithmetic can prepare inputs before the matrix calculation.