如何获得fortran中最大值的位置?

时间:2014-02-10 10:33:03

标签: matrix fortran max

我有250 * 2001矩阵。我想找到a(:,i)的最大值的位置,i取5个不同的值:i = i + 256

a(:,256)
a(:,512)
a(:,768)
a(:,1024)
a(:,1280)

我尝试使用MAXLOC,但由于我是fortran的新手,我无法正确使用它。

2 个答案:

答案 0 :(得分:2)

试试这个

maxloc(a(:,256:1280:256))

但请注意,此调用将返回第二维范围1..5的值。该调用将返回您传递给它的maxloc数组部分中2001*5的索引。因此,要获取原始数组中位置的列索引,您必须进行一些乘法运算。请注意,由于调用maxloc中的参数是一个rank-2数组部分,因此调用将返回一个2元素向量。

答案 1 :(得分:1)

你的问题有点不清楚:它可能是你想要的两件事之一。

  • 整个250 x 5子阵列的最大值;
  • 5个250 x 1子阵列中每个最大值的一个值。

您的评论建议您想要后者,并且前者已经有answer

所以,如果是后者:

b(1:5) = MAXLOC(a(:,256:1280:256), DIM=1)