Fortran 板


LINE

※ 引述《don1022 (向前冲)》之铭言: : 请教板上各位,关於读矩阵写法碰到困难 : 目前有两个档案 分别以 A B 来替代 : 档案 A 格式如下 档案 B 格式如下 : 120.00 22.50 120.00 22.50 15.0 : 120.00 22.52 120.00 22.51 14.5 : 120.00 22.53 120.00 22.52 14.7 : 120.00 22.54 120.00 22.53 16.1 : 120.00 22.57 120.00 22.54 16.5 : . . : . . : . 120.00 22.57 18.5 : 120.00 23.55 . : . . : . . : 121.50 22.10 120.00 23.55 18.1 : 意思为档案 A 内容(如120.00 22.50) 档案 B内容都有 : 我想要将档案 B 内数值(如 15.0 , 14.7 , 16.1 , 16.5等值) 写入至档案 A : 有相同内容(如120.00 22.50 ) 後面为 15.0 : 我的想法分别将档案A 档案B 分别以矩阵方式读入 : 当我档案 A读到120.00 22.50时 去搜索档案B有相同内容的值写入 : 我是用 IF 作判断, 但是在执行时出现有矩阵大小问题 : 因为矩阵B维度较大 矩阵A维度较小 : 请教板上各位 我该如何撰写程式将矩阵B数值写入矩阵A内 : 麻烦板上各位给我指点一些方向, 谢谢大家帮忙 Hi,我是Fortran新手,提供一些我的想法给你参考 我觉得你的A,B的资料都可以用2维矩阵表示,应该不需要设不同维度。 假设你有两个纯文字文件 A.txt是 120 22.5 120 22.52 120 22.53 120 22.54 120 22.57 B.txt是 120 22.5 15 120 22.51 14.5 120 22.52 14.7 120 22.53 16.1 120 22.54 16.5 120 22.57 18.5 Program replace implicit none integer,parameter::n=10 !n要大於等於A,B的列数 real(kind=8)::A(3,n),B(3,n) real(kind=8)::Tol integer::i,j,K,L integer::status=0 open(10,file='A.txt') open(20,file='B.txt') Tol = 1D-6 !容许误差 A =0 B =0 i =1 do while(.true.) read(10,*,iostat = status ) A(1:2,i) !读取A的资料 if(status /= 0) exit i=i+1 end do K =i-1 i =1 do while(.true.) read(20,*,iostat= status ) B(1:3,i) !读取B的资料 if(status /= 0) exit i=i+1 end do L =i-1 do i =1,K write (*,*) A(1:3,i) !A尚未填入资料前的状态 end do do i=1,K !若A与B前两栏相同则将B第三栏资料填入A do j=1,L if( abs(A(1,i) - B(1,j))< Tol .and. abs(A(2,i) - B(2,j))< Tol) then A(3,i) = B(3,j) end if end do end do write(*,*) "============================" do i =1,K write (*,*) A(1:3,i) !A填入资料後的状态 end do end program 测试过可以将B的资料正确填入A 不知道这是不是你要的? --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.58.38 ※ 编辑: zmark 来自: 140.114.58.38 (10/28 11:50) ※ 编辑: zmark 来自: 140.114.58.38 (10/28 15:35) ※ 编辑: zmark 来自: 140.114.58.38 (10/28 15:44)
1F:→ callmei:建议浮点数不要用==来判断 尽量用相减绝对值小於容许误差 10/30 00:35
谢谢指正! 我改好了^^ ※ 编辑: zmark 来自: 61.230.193.132 (10/30 11:57)







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP