Fortran Coder

查看: 33384|回复: 17
打印 上一主题 下一主题

[文件读写] fortran将txt文件中的一列数据赋值给一维数组

[复制链接]

11

帖子

1

主题

0

精华

入门

F 币
46 元
贡献
26 点
跳转到指定楼层
楼主
发表于 2020-5-4 00:58:52 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yangpeinian 于 2020-5-15 10:47 编辑

问题已经解决了,谢谢各位!
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

11

帖子

1

主题

0

精华

入门

F 币
46 元
贡献
26 点
沙发
 楼主| 发表于 2020-5-4 09:46:36 | 显示全部楼层

-3.0326800e+00
  -3.0303801e+00
  -3.0281079e+00
  -3.0258633e+00
  -3.0236461e+00
  -3.0214563e+00
  -3.0192937e+00
  -3.0171582e+00
  -3.0150497e+00
  -3.0129681e+00
  -3.0109133e+00
  -3.0088851e+00
  -3.0068835e+00
  -3.0049084e+00
  -3.0029595e+00
  -3.0010369e+00
  -2.9991404e+00
  -2.9972699e+00
  -2.9954252e+00
  -2.9936063e+00
  -2.9918131e+00
  -2.9900453e+00
  -2.9883031e+00
  -2.9865861e+00
  -2.9848943e+00
  -2.9832276e+00
  -2.9815859e+00
  -2.9799691e+00
  -2.9783770e+00
  -2.9768095e+00
  -2.9752666e+00
  -2.9737480e+00
  -2.9722538e+00
  -2.9707838e+00
  -2.9693378e+00
  -2.9679158e+00
  -2.9665176e+00
  -2.9651431e+00
  -2.9637923e+00
  -2.9624650e+00
  -2.9611611e+00
  -2.9598805e+00
  -2.9586230e+00
  -2.9573886e+00
  -2.9561771e+00
  -2.9549885e+00
  -2.9538226e+00
  -2.9526793e+00
  -2.9515585e+00
  -2.9504601e+00
  -2.9493839e+00
  -2.9483299e+00
  -2.9472979e+00
  -2.9462879e+00
  -2.9452997e+00
  -2.9443332e+00
  -2.9433883e+00
  -2.9424648e+00
  -2.9415628e+00
  -2.9406819e+00
  -2.9398223e+00
  -2.9389836e+00
  -2.9381659e+00
  -2.9373690e+00
  -2.9365927e+00
  -2.9358370e+00
  -2.9351018e+00
  -2.9343870e+00
  -2.9336924e+00
  -2.9330179e+00
  -2.9323634e+00
  -2.9317289e+00
  -2.9311141e+00
  -2.9305190e+00
  -2.9299434e+00
  -2.9293873e+00
  -2.9288506e+00
  -2.9283331e+00
  -2.9278346e+00
  -2.9273552e+00
  -2.9268947e+00
  -2.9264529e+00
.
.
.
数据文件是这样一列7001行的数据

11

帖子

1

主题

0

精华

入门

F 币
46 元
贡献
26 点
板凳
 楼主| 发表于 2020-5-4 10:09:05 | 显示全部楼层
vvt 发表于 2020-5-4 10:02
语法和逻辑上都是正常的。

fortran运行后结果显示的波形是这样的

7fd68be13c8d6c81b4870f347ef742c.png (14.36 KB, 下载次数: 445)

这是程序运行后得到的数组算出来的波形

这是程序运行后得到的数组算出来的波形

11

帖子

1

主题

0

精华

入门

F 币
46 元
贡献
26 点
地板
 楼主| 发表于 2020-5-4 10:10:31 | 显示全部楼层
但是我想得到的数据波形要是这样的,不知道哪里出了问题

1fbe24c38ad87dbbf11367592e9dbbf.png (13.9 KB, 下载次数: 412)

1fbe24c38ad87dbbf11367592e9dbbf.png

11

帖子

1

主题

0

精华

入门

F 币
46 元
贡献
26 点
5#
 楼主| 发表于 2020-5-4 10:11:15 | 显示全部楼层
vvt 发表于 2020-5-4 10:02
语法和逻辑上都是正常的。

好的,谢谢您!

11

帖子

1

主题

0

精华

入门

F 币
46 元
贡献
26 点
6#
 楼主| 发表于 2020-5-4 14:58:45 | 显示全部楼层
vvt 发表于 2020-5-4 11:17
你可以把数据文件打包上传上来~

感谢大哥,文件已上传,请指教。

single.txt

123.06 KB, 下载次数: 3

需要赋值的txt文件

11

帖子

1

主题

0

精华

入门

F 币
46 元
贡献
26 点
7#
 楼主| 发表于 2020-5-4 16:00:27 | 显示全部楼层
vvt 发表于 2020-5-4 15:09
我试了一下,读出来的数据画图如你给出的图片2一样。

那么这张图,是如何得到的呢?

首先表示感谢您的有效回复。这个是我把文件中的数据赋值给一个一维数组,然后让这个数组是声场计算中的声源。计算后提取声源处的波形,就得到是第一幅图的波形。图1和图2的起跳点大概一致,有没有可能是数据计算的有效位数问题?但是我定义的是real(8),精度应该够吧

11

帖子

1

主题

0

精华

入门

F 币
46 元
贡献
26 点
8#
 楼主| 发表于 2020-5-4 16:02:08 | 显示全部楼层
vvt 发表于 2020-5-4 15:09
我试了一下,读出来的数据画图如你给出的图片2一样。

那么这张图,是如何得到的呢?

所以可以肯定的是,数据赋值应该没有问题。但是在计算过程中可能有什么有效位数的问题。

11

帖子

1

主题

0

精华

入门

F 币
46 元
贡献
26 点
9#
 楼主| 发表于 2020-5-4 18:40:26 | 显示全部楼层
本帖最后由 yangpeinian 于 2020-5-15 10:45 编辑
vvt 发表于 2020-5-4 17:09
这需要你提供计算过程的代码,相关逻辑对应的公式,才能判断。

麻烦请指教!不胜感激!

11

帖子

1

主题

0

精华

入门

F 币
46 元
贡献
26 点
10#
 楼主| 发表于 2020-5-4 18:48:23 | 显示全部楼层
vvt 发表于 2020-5-4 17:09
这需要你提供计算过程的代码,相关逻辑对应的公式,才能判断。

程序是在原来有限差分的基础上改的。之前的程序声源直接是一个声源函数,现在的是把声源波形的txt文件数据赋值,设为新的声源。程序可能不好看懂,模型就是包括轴向和径向两个方向的声场计算,需要得到不同时刻不同位置的跟声场相关的物理量。总之就是时间循环里嵌套了一个轴向网格循环,里面再嵌套了一个径向网格循环。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-19 21:34

Powered by Tencent X3.4

© 2013-2024 Tencent

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