Plot 将结果存储在fortran 77中的列中

Plot 将结果存储在fortran 77中的列中,plot,fortran,fortran77,Plot,Fortran,Fortran77,我正在将我的一个代码转换为fortran 77,我在存储结果方面遇到了问题 我使用了以下代码 OPEN(UNIT=21, FILE='name.TXT', STATUS='REPLACE') WRITE(UNIT = 21,*) results CLOSE(UNIT=21) 然后在Matlab中加载文件name.txt进行绘图。但是,结果以二维数组的形式写入文件,因此matlab会以错误的顺序识别条目。我认为解决方案是将结果作为一维数组写入name.txt 任何人对将fortran的结果写成数

我正在将我的一个代码转换为fortran 77,我在存储结果方面遇到了问题

我使用了以下代码

OPEN(UNIT=21, FILE='name.TXT', STATUS='REPLACE')
WRITE(UNIT = 21,*) results
CLOSE(UNIT=21)
然后在Matlab中加载文件name.txt进行绘图。但是,结果以二维数组的形式写入文件,因此matlab会以错误的顺序识别条目。我认为解决方案是将结果作为一维数组写入name.txt

任何人对将fortran的结果写成数组有什么建议吗。例如,我想得到一个文件,其中条目按顺序排列

12345678910

12345
678910

当然,如果你知道任何更好的方法来绘制从Fortran 77获得的结果,它也会对我有用

顺便说一句,我正在使用UNIX


感谢您在使用自由格式输出(更好地称为格式说明符)时,Fortran会将输出的详细信息留给编译器。其中一个细节是单行中的字符数。大多数编译器都会在一定数量的字符后将输出换行,当您使用自由格式时,无法影响这一点。因此,它并不是真正以“二维数组”的形式编写的,而是在“空间”(由编译器定义)用完时按顺序和周期性地写入到新行。请尝试使用如下格式:

*
写入(单位=21'(I)”结果

使用上述格式,编译器被迫将变量结果打印为整数(或一组整数)而且,由于格式中没有换行指令,它将在一行上打印出结果的所有元素。事实上,它将打印出来,中间没有空格,这可能不是您想要的。添加一个“X”字段标识符,在每个整数之间加一个空格

写入(单位=21'(I,X)”结果

这将为您的文件中的单个未中断的整数行提供。如果您使用浮点变量,请将I替换为F

有关Fortran77格式的详细说明,请查看本页:

您可以尝试使用具有显式整数数(固定长度)的格式:

如果数组中的元素数已知,则可以使用隐式循环:

WRITE(UNIT = 21, '(100i5)') ( return(j), j=1,n )

结果是二维还是一维数组?
WRITE(UNIT=21, '(I, X)') results
WRITE(UNIT = 21, '(100i5)') return
WRITE(UNIT = 21, '(100i5)') ( return(j), j=1,n )