Arrays 在Fortran中从较大的数组定义数组
我在Fortran中有一个4维数组,名为Arrays 在Fortran中从较大的数组定义数组,arrays,multidimensional-array,fortran,Arrays,Multidimensional Array,Fortran,我在Fortran中有一个4维数组,名为covi,声明为: real, dimension(10,10,2,2) :: covi 并以某种方式进行计算 在某个时刻,我需要获取该数组的二维切片,例如lkecovi(1,1,:,:),covi(3,4,:,:),covi(7,5,:,:,:),等等。 我声明了另一个变量real,维度(2,2)::cov并编写了cov=covi(7,5,:,:),但这不起作用。它给出以下错误消息: error #6366: The shapes of the arr
covi
,声明为:
real, dimension(10,10,2,2) :: covi
并以某种方式进行计算
在某个时刻,我需要获取该数组的二维切片,例如lkecovi(1,1,:,:)
,covi(3,4,:,:)
,covi(7,5,:,:,:)
,等等。
我声明了另一个变量real,维度(2,2)::cov
并编写了cov=covi(7,5,:,:)
,但这不起作用。它给出以下错误消息:
error #6366: The shapes of the array expressions do not conform. [COVI]
covi = cov(i1,i2,:,:)
在Matlab中,这种表示法非常有效。这很直观。如何在Fortran中实现这一点
谢谢
covi=cov(i1,i2,:,:,:)
与cov=covi(7,5,:,:,:)
不匹配。您刚刚错误地切换了cov和covi…请注意,如果您经常引用那些“2,2”“切片”,最好将4d数组结构为(2,2,10)
,因为这会使4个值在内存中连续。这同样适用于matlab。