Fortran数据格式的3F7.1的含义

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Fortran数据格式的3F7.1的含义相关的知识,希望对你有一定的参考价值。

我正在尝试使用HLM 7学生版创建MDM文件,但由于我无法访问SPSS,因此我尝试使用ASCII输入导入数据。作为此过程的一部分,我需要输入Fortran样式的数据格式。尽我所能,我可能无法理解这一步。熟悉Fortran(甚至更好的HLM本身)的人可以向我解释一下这是如何工作的吗?这是我目前的理解

From the example EG3.DAT they give 

    (A4,1X,3F7.1)

I think

A4 signifies that the ID is 4 characters long.
1X means skip a space.
F.1 means that it should read 1 decimal places.

我很担心3F7可能意味着什么。

EG3.DAT

2020   380.0   40.3   12.5
2040   502.0   83.1   18.6
2180   777.0   96.6   44.4

以下是帮助文档中的示例。

Rules for format statement Format statement example

EG1 data format EG2 data format EG3 data format

答案

在Fortran中,所谓的数据编辑描述符(格式化数据的输入或输出)可能具有重复的规范。

(A4,1X,3F7.1)格式中,数据编辑描述符是A4F7.1。只有F7.1有重复规范(F之前的数字)。这只是意味着格式就像描述符重复出现一样:像F7.1, F7.1, F7.1。重复规范1,或没有给出,只有单一的外观。

那么,问题的格式就像

(A4,1X,F7.1,F7.1,F7.1)

此格式是由问题图像之一中提供的规则所涵盖的格式。特别地,重复规范的方面在规则2中给出,具有规则3的对应示例。

此外,在Fortran本身,重复计数说明符也可能是*作为特例:这就像一个特别大的重复计数。 *(F7.1)就像F7.1, F7.1, F7.1, ...。我没有看到HLM支持这一点的迹象,但如果需要,可以给出非常大的重复计数。


1X中,1不是重复规范,而是位置编辑描述符的一个整体和必要的部分。

另一答案

一个类似的问题是Explaining Fortran Write Format。不幸的是,它没有明确地处理F描述符。

3F7.1表示3个浮点数,每个浮点数超过7个字符,每个字符在小数点后面有一个十进制数。主角是空白。

对于阅读,您根本不需要.1信息,只需从这7个字符中读取浮点数。

你猜对了A4(四个字符串)和1X(一个空白)正确的含义。

另一答案

从excel for HLM制作MDM文件的过程:

- 确保所有列中的所有字符都排成一行

  • 选择一列,然后右键单击并选择“设置单元格格式”
  • 然后单击“自定义”并转到“类型”框,然后输入所需的0个数字

- 从文档中删除所有选项卡,并用空格替换它们。

  • 用word打开文档并使用查找和替换

- 将文档另存为.dat

  • 首先将其保存为.txt
  • 然后在记事本中将其打开并将其另存为.dat

输入数据格式(FORTRAN-Style)

该程序希望按空间读取数据文件空间,因此您必须完美地指定它,以便它正确读取整个集合。如果有什么东西是关闭的,即使是一个空格,那么与你在另一个程序中检查它们相比,你的描述性统计数据会有所不同。

  • 用括号括起代码()
  • 用逗号分隔条目,

- 所有级别的需要ID列

  • 需要对ID列进行排序,使其从最小到最大
  • 使用A#,#是ID中的字符数
  • 使用X1从ID移动到下一列

- 需要说明每列需要多少个字符

  • 使用F.
  • F之后是该列所需的字符数 - 使用F#(#=数字)
  • 需要有足够的字符空间来在每列之间提供一个“间隙”空间
  • 需要足够的字符空格以允许小数
  • 作为F的一部分,您需要指定小数位数
  • 你可以通过在F数后添加一个小数点然后用一个数字来表示你需要的空格-F#。#
  • 你可以在F前面使用一个数字来“重复”它。不过没必要。 -#F#。#

总而言之,它应该看起来像这样:

(A4,X1,F4.0,F5.1)

有用的网址:

https://books.google.de/books?id=VdmVtz6Wtc0C&pg=PA78&lpg=PA78&dq=data+format+fortran+style+hlm&source=bl&ots=kURJ6USN5e&sig=fdtsmTGSKFxn04wkxvRc2Vw1l5Q&hl=en&sa=X&ved=0ahUKEwi_yPurjYrYAhWIJuwKHa0uCuAQ6AEIPzAC#v=onepage&q&f=false http://www.ssicentral.com/hlm/help6/error/Problems_creating_MDM_files.pdf http://www.ssicentral.com/hlm/help7/faq/FAQ_Format_specifications_for_ASCII_data.pdf

以上是关于Fortran数据格式的3F7.1的含义的主要内容,如果未能解决你的问题,请参考以下文章

C、C++ 或 Fortran 的代码抛光器/重新格式化器 [关闭]

python 字符串格式化问题

fortran里的数组赋值

6.30 7.1

在Tomcat的安装目录下conf目录下的server.xml文件中增加一个xml代码片段,该代码片段中每个属性的含义与用途

Fortran 错误:单元连接到格式化文件