fortran由full实矩阵转换为CSR格式的案例

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值