fortran读取数据求助,现一文件格式如下

000.06683001-0.03036502-0.00276003-0.030365040.060062100.04275911-0.002760120.0427591... 0 0 0.066830 0 1 -0.030365 0 2 -0.002760
0 3 -0.030365 0 4 0.060062 1 0 0.042759
1 1 -0.002760 1 2 0.042759 1 3 0.053272
想读取的格式为:a(0,0)=0.066830 a(0,1)=-0.030365 a(0,2)=
-0.002760...依次类推。求各位高手帮助,谢谢了。
展开
 我来答
天河流纹石
2012-11-21 · TA获得超过1.3万个赞
知道大有可为答主
回答量:7624
采纳率:76%
帮助的人:4110万
展开全部
这是一个对称矩阵吗?

大小只有 3*3 吗?还是需要先确定大小?

对称矩阵,你要读取一半,还是全部?(如果确定是对称阵,那么读一半就足够了)
追问
这个不是对称矩阵,原来的文本还有很多行,很多列,这里只是给出了部分数据,需要依次读三个数,前两个数是二维数组的上标和下标,后一个数赋予该二位数。
追答
那你知道一共有多少行,多少列吗?

如果知道就好办,假设一共 M 行,N 列。
那么
Program BaiduZhiDao
Implicit None
integer i , j , M , N
integer , allocatable :: x(:) , y(:)
real , allocatable :: z(:)
real a(0:4,0:4)
a = 999.0
M = 3 !// 行
N = 9 !// 列
N = N/3
Allocate( x(N) )
Allocate( y(N) )
Allocate( z(N) )
Open( 12 , File = 't.txt' )
Do i = 1 , M
Read( 12 , * ) ((x(j),y(j),z(j)),j=1,N)
Do j = 1 , N
a( x(j) , y(j) ) = z(j)
End Do
End Do
write( * , * ) a
Deallocate( x(N) )
Deallocate( y(N) )
Deallocate( z(N) )
End Program BaiduZhiDao
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式