program csr_conversion
implicit none
! 定义稀疏矩阵 A
real, dimension(3, 2) :: A = reshape([1.0, 0.0, 1.0, 2.0, 3.0, 0.0], [3, 2])
integer :: values(3), columns(3), row_ptr(4)
integer :: i, j, k
! 初始化 row_ptr
row_ptr(1) = 1
! 转换稀疏矩阵为 CSR 格式
k = 1
do i = 1, 3
do j = 1, 2
if (A(i, j) /= 0.0) then
values(k) = A(i, j)
columns(k) = j ! Fortran 从 1 开始,CSR 格式从 0 开始
k = k + 1
end if
end do
row_ptr(i+1) = k
end do
! 输出转换后的 CSR 格式数组
print *, "values:", values
print *, "columns:", columns
print *, "row_ptr:", row_ptr
end program csr_conversion
12-16
2102
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
05-16