【问题标题】:Possible to index into contents of array subject to transpose function?可以索引到受转置函数影响的数组内容吗?
【发布时间】:2017-12-11 07:59:51
【问题描述】:

在 fortran 中,是否可以对受内在函数约束的数组元素进行索引?我特别指的是transpose 函数。在下面的代码中,我正在生成并初始化一个名为 A 的数组,并尝试在转置后的数组中索引一个值

program test 
    integer, dimension(5,3) :: A
    integer :: i,j

    A = reshape((/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15/), shape(A))

    print *, transpose(A)(1,1)
end program test

但是我收到如下语法错误:

**D:\TEMP\FortranTest>gfortran -o 测试 Transposecommand.f90 Transposecommand.f90:11:22:

打印 *, 转置(A)(1,1) 1 错误: (1) 处的 PRINT 语句中的语法错误**

有没有办法实现这一点而不必声明一个单独的变量然后将转置数组分配给它?如果可能的话,我想避免声明新变量...

【问题讨论】:

  • 那是“你为什么要那样做”之一。问题。既然可以print *, A(m,n),为什么还要print *, transpose(A)(n,m)

标签: arrays fortran fortran90


【解决方案1】:

不,Fortran 不支持对函数结果进行这种索引。您必须自己设计一个优雅的解决方案(aka 一个杂项)。我自己会考虑

transpose(a)(i,j) == a(j,i)

【讨论】:

    猜你喜欢
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-13
    • 2021-10-28
    • 1970-01-01
    • 2011-03-06
    相关资源
    最近更新 更多