重塑矩阵的特定维度

时间:2019-04-29 10:32:44

标签: linux fortran

我正在尝试在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]。

请帮助我解决这个问题。

谢谢。

0 个答案:

没有答案