如何用隐含的DO循环逐行写矩阵? [英] How to write matrix row by row with implied do loop?

查看:0
本文介绍了如何用隐含的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆