matrix - 打印复杂矩阵 Fortran
问题描述
复矩阵是这样声明的:
complex(8) :: matrix(:,:)
如何以 nxn 格式打印每个元素的矩阵:(a, b) 或 a+ib?(我的意思是一个方阵,每行一行,所以会有 n 行和 n 列)
这是我用我想要的格式打印一个真实矩阵的方式:
do i=1,n
do j=1,n
write(*, fmt="(f0.2, tr2)", advance="no") matrix(i,j)
end do
write(*, fmt="(a)") " "
end do
但我不确定如何将其转换为复杂矩阵
解决方案
如何将每个元素的矩阵打印为:(a,b)
假设您已经知道这(a b)
是complex
type 的默认打印格式,为什么这还不够?
do j=1,n
write(*, *) matrix(:,j)
end do
输出将类似于:
(10.000000000000000,-20.000000000000000) (10.000000000000000,-20.000000000000000) (10.000000000000000,-20.000000000000000)
(10.000000000000000, 20.000000000000000) (10.000000000000000, 20.000000000000000) (10.000000000000000, 20.000000000000000)
如果您想要更多定制的东西,您可以尝试这样的事情(调整字段宽度和精度):
do j=1,n
write(*, "(*('('sf6.2xspf6.2x'i)':x))") matrix(:,j)
end do
这会产生这样的结果:
( 10.00 -20.00 i) ( 10.00 -20.00 i) ( 10.00 -20.00 i)
( 10.00 +20.00 i) ( 10.00 +20.00 i) ( 10.00 +20.00 i)
推荐阅读
- string - 在 FOR 循环批处理语法中使用变量进行字符串替换
- mapbox - Mapbox GL JS 填充模式和数据驱动样式
- excel - 带有 ADODB 连接字符串到 Access 数据库的 Excel 函数
- python - 是否可以更新 Doc2Vec 向量?
- c# - 如何使用生成的波形复杂 [] 数组写入 .wav 文件?
- google-apps-script - 阻止 Apps 脚本创建 GCP 项目
- java - 为什么 javac 允许“new CLS().new InnerCLS()”编译?
- flutter - 作为参数的函数 (DART)
- spring-boot - WebFluxTest 无法读取矩阵变量
- ios - SwiftUI Image 通过触摸透明像素