- Fortran 教程
- Fortran - 主页
- Fortran - 概述
- Fortran - 环境设置
- Fortran - 基本语法
- Fortran - 数据类型
- Fortran - 变量
- Fortran - 常量
- Fortran - 运算符
- Fortran - 决策
- Fortran - 循环
- Fortran - 数字
- Fortran - 字符
- Fortran - 字符串
- Fortran - 数组
- Fortran - 动态数组
- Fortran - 派生数据类型
- Fortran - 指针
- Fortran - 基本输入输出
- Fortran - 文件输入输出
- Fortran - 过程
- Fortran - 模块
- Fortran - 内在函数
- Fortran - 数值精度
- Fortran - 程序库
- Fortran - 编程风格
- Fortran - 调试程序
- Fortran 资源
- Fortran - 快速指南
- Fortran - 有用的资源
- Fortran - 讨论
Fortran - 向量和矩阵乘法函数
下表描述了向量和矩阵乘法函数:
| 功能 | 描述 |
|---|---|
| 点积(向量a,向量b) | 此函数返回两个输入向量的标量积,这两个输入向量必须具有相同的长度。 |
| matmul(矩阵_a,矩阵_b) | 它返回两个矩阵的矩阵乘积,该矩阵必须一致,即具有 (m, k) 和 (k, n) 等维度 |
例子
以下示例演示了点积:
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
当上面的代码被编译并执行时,会产生以下结果:
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
例子
以下示例演示了矩阵乘法:
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
当上面的代码被编译并执行时,会产生以下结果:
Matrix Multiplication: A Matrix 2 3 4 3 4 5 4 5 6 Matrix Multiplication: B Matrix 1 2 3 2 4 6 3 6 9 Matrix Multiplication: Result Matrix 20 40 60 26 52 78 32 64 96
fortran_arrays.htm