我正在尝试在Fortran中将矩阵的一维重塑为2d
我有一个矩阵“ vfm [4208,5155]”。出于此原因,我想将“ vfm [4208,1166:5515]”转换为“ vfm [4208,290]”。
提取vfm [4208,1166:5515]使其成为vfm [4208,4350]。此外,我想将第二维(4350)整形为2d(290x15),然后将其第二维(15)平均化。这意味着最终矩阵应为“ vfm [4208,290]”。
以下是代码流: vfm [4208,4350]-> vfm [4208,290,15] ---> vfm [4208,290]
我的实际代码太长,因此我在这里编写了一部分代码。
Character*80:vfmf
integer, dimension(:,:), allocatable, target :: vfm
integer, dimension(:,:), pointer :: vfm1
xdim=4208
ydim=5515
open(16,file=vfmf,status='old')
allocate(vfm(xdim,ydim))
read(16,*)((vfm(ii,jj),jj=1,ydim),ii=1,xdim)
vfm1 => vfm(:,1166:5515)
vfm2=reshape((vfm1),(/xdim,4350/),(/xdim,290,15))
Stop
End
在此之后,我面临以下错误
Error: Syntax error in array constructor at (1)
我无法在Ubuntu中使用fortran将vfm [4208,4350]重塑为vfm [4208,290,15]。
请帮助我解决这个问题。
谢谢。