Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matrix 如何在fortran中获取最大值的位置?_Matrix_Fortran_Max - Fatal编程技术网

Matrix 如何在fortran中获取最大值的位置?

Matrix 如何在fortran中获取最大值的位置?,matrix,fortran,max,Matrix,Fortran,Max,我有一个250*2001矩阵。我想找到a(:,I)的最大值的位置,其中I取5个不同的值:I=I+256 a(:,256) a(:,512) a(:,768) a(:,1024) a(:,1280) 我尝试使用MAXLOC,但由于我是fortran新手,所以无法正确使用它。试试这个 maxloc(a(:,256:1280:256)) 但请注意,此调用将返回第二维度范围1..5内的值。调用将返回传递给它的2001*5数组部分中maxloc的索引。因此,要获得原始数组中位置的列索引,必须进行乘法运

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

a(:,256)
a(:,512)
a(:,768)
a(:,1024)
a(:,1280)
我尝试使用MAXLOC,但由于我是fortran新手,所以无法正确使用它。

试试这个

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

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

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

  • 一个值表示整个250×5子阵列的最大值
  • 5个250×1子阵列中每个阵列的最大值为一个值
你的评论表明你想要后者,而且对于前者已经有了一个明确的定义

因此,如果是后者:

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

您是如何尝试的
MAXLOC
?我尝试过,但它只给出了一列的结果。