我从网上获得了一个用于K-means聚类的Fortran代码 由于我是Fortran的新手,我不知道代码所需的输入文件格式,如下所示。
如何根据此Fortran代码准备输入文件?
infile1='D1_TR_all_cent63.dat'
OPEN(1,FILE=infile1,form='formatted',access='direct',
+ recl=429)
istep=nvectors/nclusters
DO i=1,nclusters
READ(1,23,rec=istep*(i-1)+1)(vec(j),j=1,42)
DO k=1,nelements
centroid(i,k)=vec(k)
END DO
END DO
23 format(42(f10.3))
答案 0 :(得分:0)
它正在寻找一个文件,其中每行包含42个字段,它们希望找到定点数。这是42(f10.3)
中的format
声明。每个字段宽10个字符;虽然允许使用空格,但它们之间没有逗号或其他分隔符。
例如:
123456.789 123.123 -123.123 12345.678 0.000
(直到有42个)。
大多数FORTRAN实现在阅读时会有点怜悯:你可以省略一些小数点后的数字,或者在数字后面留一个空格(但你必须留在10个字符的字段中)。但并非所有人都这样做,所以最好在小数点之前准备输入6位数(包括符号,如果需要,允许使用空格),以及之后的数字。