作者openfire (疲惫...)
看板Fortran
标题Re: [问题] 未知大小矩阵读取的问题
时间Tue Aug 11 21:37:29 2009
我尝试使用terryys版友的建议写出来了
在这边野人献曝一下
program main
implicit none
integer n,i
character row
real,allocatable:: a(:,:)
n=0 !先读取档案判断矩阵阶数
open (11,file='matrix.txt',status='old')
do while(.not. eof(11))
read(11,*) row
n=n+1
enddo
allocate ( a(n,n) )
rewind(11) !将读取位置回到档案开头
do i=1,n !将档案读进矩阵中
read(11,*) a(:,i)
11 format (I3)
enddo
write(*,*)'The input matrix a =' !先在萤幕上print出读取的档案状况
write(*,*) a !以确认读取无误
end
不过老实说我对於a(:,i)的意思还并不是很了解
刚刚翻了一下书也没找到这个指令的详细说明
还是请高手们给点方向吧! 感谢
再次跟提供意见的板友们致谢^^
--
正妹!!! 干!跟你说过要先看看你自己的脸...
\ /
○
︵ \○ ╱/|
. . ﹎ ﹍﹍ ╱ ̄﹚╱>
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.227.128.150
※ 编辑: openfire 来自: 61.227.128.150 (08/11 21:39)
1F:推 laa7352:a(:,i)的意是指第一个维度1~n,而第二个维度是i的 08/11 22:01
2F:→ laa7352:所有a矩阵的元素 08/11 22:01
3F:→ laa7352:明白的说 假设n=3的话 a(:,i)的用法 08/11 22:02
4F:→ laa7352:就等於a(1,i),a(2,i),a(3,i) 08/11 22:03
5F:→ openfire:也就是说先跑i的回圈 看i的范围来决定n的大小搂? 08/12 11:55
6F:推 laa7352:因为你这样宣告allocate(a(n:n)) 08/13 10:08
7F:→ laa7352:所以这样写read(11,*)a(1,i),a(2,i),a(3,i) 08/13 10:09
8F:→ laa7352:会等於read(11,*)a(:,i) 08/13 10:09
9F:→ laa7352:里面的冒号代表的是1~n 08/13 10:10