FORTRAN中如何读入和输出数组(矩阵)
1.我写了一个读入矩阵的语句,程序没有报错,但是运行的时候就运行不了,请大家帮忙分析一下是什么原因?2.如果想输出一个3*3的矩阵,应该怎么编译啊?
3.如果我想读入.txt文档里面的矩阵,应该怎么写程序啊?
dimension n(3,3)
integer i,j
read (*,1)((n(i,j),j=1,3),i=1,3)
write (*,1)n
1 FORMAT (2X,'n=',3I6.2/2(4X,3I6.2/))
end
txt里数据格式怎么样的? 不要用 dimension,不要用格式符read
integer :: n(3,3)
read (*,*) n
write (*,'(3(3i6.2/))') n
end
至于 write 的格式符,你想写就写,不写拉倒。
从文件读入也很简单
integer :: n(3,3)
Open( 111 , File = '文件名' )
read (111,*) n
write (*,'(3(3i6.2/))') n
end vvt 发表于 2014-6-11 19:21
不要用 dimension,不要用格式符read
integer :: n(3,3)
谢谢你的回复!我把你的程序输进去了,不输dimension a(3,3)程序会报错,而且输入integer :: n(3,3)
,也报错了!不知道是什么原因 安靖 发表于 2014-6-11 18:54
txt里数据格式怎么样的?
我现在txt数据时这样的
4.5 0.2 -1.3 0 0 0 0
0 5.3 0 0 0 0 0
0 0 10.2 5.1 0 -1.7 0
0 0 0 8.4 0 0 0
0 0 0 0 0.6 0 0
0 0 0 0 0 3.1 0
0 0 0 0 0 0 5.6
我用这个程序
dimension a(3,3)
open (1,file='E\1.txt')
do 10 i=1,3
read(1,*)(a(i,j),j=1,3)
10 continue
write(*,*)((a(i,j),j=1,3),i=1,3)
100 FORMAT (2x,7f6.2/6(2x,7f6.2/))
end
是对的了!
本帖最后由 chuxf 于 2014-6-11 23:20 编辑
第一,不要用 dimension
第二,请弄清楚数据的类型,是整型,还是浮点型。
整型用 integer 定义,用 I 格式符输出(你在主楼就这样写的,所以大家以为是整型)
浮点型用 real 定义,用 f 格式符输出(你在楼上就这样写的)
第三,出错,一定要给错误提示!!!!否则神仙也帮不了你
第四,请用 End Do,不要用 continue
第五,请扔掉手边的 FORTRAN77 的书,看一本 Fortran90 或 95 的书。
第六,你的数组不是 3*3 的。
chuxf 发表于 2014-6-11 23:19
第一,不要用 dimension
第二,请弄清楚数据的类型,是整型,还是浮点型。
整型用 integer 定义,用 I 格式 ...
谢谢,你的意见很有帮助!
1和5. 我确实是在用Fortran77的书,呵呵,那上面教我用dimension,所以采用的,是不是因为Fortran90的书不让用啦?附:能不能介绍一本Fortran学习的书呢?
2和6. 对不起,我这个没说清楚,我一开始txt文档时用的整型数据,后来回复的时候我把数据改了,然后重新看一下对不对,所以改了一下
3.下次我会注意写清楚错误提示!
《Fortran95 程序设计》【彭国伦】 http://fcode.cn/resource_ebook-1-1.html
为什么不提倡用 Dimension http://fcode.cn/guide-43-1.html
数据类型很重要~
页:
[1]