Fortran Coder

Fortran读规定格式文本文件中复数矩阵的难题

查看数: 15829 | 评论数: 7 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2014-5-8 20:57

正文摘要:

在下用VS2010 + IVF写了一个读任意m × n阶复矩阵的函数,含有复矩阵的文件格式如下图所示。 我的fortran77代码如下所示: [Fortran] 纯文本查看 复制代码!========================================   &nb ...

回复

fcode 发表于 2014-5-9 18:24:11
楼上说得没错,有条件的话,使用一些更标准的格式会更好。或者自己规定一些比较简单鲜明的格式,对自己,对他人,都有好处
pasuka 发表于 2014-5-9 10:39:52
请输出成标准的矩阵存储格式,譬如
Matrix Market Exchange Formats
Harwell-Boeing Exchange Format
aliouying 发表于 2014-5-8 23:50:03
山大克鲁士 发表于 2014-5-8 22:50
再次膜拜大神,学生的接口函数全弄好了,多亏了大神才能让学生实现Matlab、C、Fortran的数据文件无缝衔接~ ...

加论坛对应的fortran群: 2338021
山大克鲁士 发表于 2014-5-8 22:50:55
再次膜拜大神,学生的接口函数全弄好了,多亏了大神才能让学生实现Matlab、C、Fortran的数据文件无缝衔接~~~
大神方便留个qq吗?当然学生绝不会经常打扰的~~~
学生的qq是45152364~
fcode 发表于 2014-5-8 21:42:28
77 和 90 没有太严格的界限。就像 C99 和 C89 一样。

但是 77 不允许用 allocatable 的数组,呵呵。现在建议不要特意学习 77 了
山大克鲁士 发表于 2014-5-8 21:36:44
首先拜谢大神,我马上将您的代码弄进去试试~~~
P.S: 我也弄不清是77还是90,因为在下是C coder过来的,所以很多时候对fortran的东东还很迷糊。。。
fcode 发表于 2014-5-8 21:26:33
首先,你的代码不是 Fortran77 的,至少是 Fortran90 的

其次,你这个格式确实不好读,需要绕一些弯。

[Fortran] 纯文本查看 复制代码
!========================================
          ! Open file in ANSI mode
          open(UNIT = fid, FILE = strFileName,
     &         ACCESS = 'SEQUENTIAL', ACTION = 'READ',
     &         FORM = 'FORMATTED', STATUS = 'OLD')

          ! This is a m X n complex matrix as:
          read(fid, *) strBuf, strBuf, strBuf, 
     &    m, strBuf, n, strBuf, strBuf, strBuf

          ! Memory allocation for A
          allocate(A(m,n), STAT = ierr)
          ! Out of memory
          if (ierr .ne. 0) then
              close(fid, STATUS = 'KEEP')
              print *, 'Out of memory!'
              ReadZMatrixFromFile32 = .false.
              return
          end if

          ! Read matrix from file in row-major format
          ! 下一行肯定是错的,但我真心不知道咋整了。。。
          read(fid, *) ((A(i,j), j=1,n), i=1,m)

          ! Close file
          close(fid, STATUS = 'KEEP')
!======================================

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-12-23 05:44

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表