如何用隐含的DO循环逐行写矩阵? [英] How to write matrix row by row with implied do loop?
本文介绍了如何用隐含的DO循环逐行写矩阵?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的IDE是带有MinGW 9.2.0的代码块。
我需要帮助在文本文件中逐行编写矩阵。
这是我的简单代码:
program matrix
integer :: i, j
integer, dimension(2,2) :: a_mat
forall( i = 1 : 2, j = 1, 2 )
a_mat(i,j) = i + j
end forall
open( unit = 15, file = 'matrix_utput.txt', action = 'write' )
write(15,'(*(i2.2,1x))') ( ( a_mat(i,j), j = 1, 2 ), i = 1, 2 )
close( unit = 15 )
end program matrix
在我的.txt
文件中,我获得了以下内容:
02 03 03 04
如何更改格式以获得此结果:
02 03
03 04
推荐答案
正常方法是逐行循环DO循环,如Write matrix with Fortran
所示但也可以使用格式还原在隐式循环中执行此操作。
write(15,'(2(i2.2,1x))') ( ( a_mat(i,j), j = 1, 2 ), i = 1, 2 )
基本上,括号前的数字必须是行长(列数)。如果您将*
放在那里,它将消耗整个数组。这样,每次格式找到它的所有项目时,它都会打开一个新记录。
这篇关于如何用隐含的DO循环逐行写矩阵?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文