1

我有一个 3x2 数组,并用数字 1-6 填充它,使其看起来像
1 4
2 5
3 6

然后我调用它的 maxval,并指定我希望找到沿维度 1 的最大值。人们会期望它应该返回 3,不是吗?

但由于某种原因,我的输出是 '3 6'

PROGRAM maxv
    IMPLICIT None
    INTEGER, DIMENSION(3,2) :: x
    DATA x /1,2,3,4,5,6/

    WRITE(*,*) maxval(x,dim=1)
ENDPROGRAM maxv

如果问题出在我的编译器中,我使用 Gfortran 4.6.3

根据http://www.nsc.liu.se/~boein/f77to90/a5.html,指定维度时的 maxval 应该提供该维度中的 maxval。

或者也许我忽略了一些东西。

4

1 回答 1

2

是的,你忽略了一些东西maxval行为正确。

当您编写时,对于 rank-2 数组x

maxval(x,dim=1)

该函数返回一个 rank-1 数组,其元素数量与 中的列相同x,每个元素是 中相应列的最大值x。相似地

maxval(x,dim=2)

对于您的示例,将返回 rank-1 数组[4,5,6]- 的每一行中的最大值x

GNU 文档比您引用的源更好地解释了该功能,IBM解释得更好,并包含该功能使用的示例。

于 2013-04-17T05:18:58.850 回答