fortran - 使用 Fortran 中的 if 条件从多列中提取值
问题描述
我的文件包含多列。当 col#1 和 col#2 都不等于 0 时,我想使用 fortran 提取值。我知道这是我的一个非常基本的疑问,但我对此有点困惑。我使用了以下想法但没有工作。它必须删除 col#1 和 col#2 都为零的那些行,并且它必须打印它会得到 1 的任何地方。
先感谢您。
if(col1(ii).ne.0.and.col2(ii).ne.0)then
print*,col1,col2,col3
end if
输入:
0.00 0.00
1.00 0.00
1.00 1.00
0.00 1.00
0.00 0.00
1.00 0.00
1.00 1.00
预期产量:
1.00 0.00
1.00 1.00
0.00 1.00
1.00 0.00
1.00 1.00
代码输出:
1.00 1.00
1.00 1.00
解决方案
我相信你的逻辑是有缺陷的。如果我理解正确;您想删除 col#1 或 col#2 不为零的行。尝试这个:-
if(col1(ii) .NE. 0 .OR. col2(ii) .NE. 0)then print*,col1,col2 end if
或者(相同的输出):
if(.NOT. (col1(ii) .EQ. 0 .AND. col2(ii) .EQ. 0) )then print*,col1,col2 end if
推荐阅读
- c# - ASP.NET Core MVC - 无法返回带有视图的模型
- java - 如何使用文件提供程序从手机内部存储中打开 ppt 文件
- java - Gradle processResources 很慢 / IntelliJ 快速热交换静态资源
- swift - swift - 如何定义特定类型的间接枚举案例
- javascript - 如何向输入框添加附加值
- google-translate - 谷歌翻译 - 自动检测浏览器语言并翻译成英文
- python - EMR pyspark notebook Spark 进度小部件不见了
- visualization - 如何(视觉方式)表示测试用例(手动或自动)已经涵盖了哪些组件/流程?
- excel - Ping IP 地址并循环直到距离另一个工作簿最多 50 英寸的范围
- docker - 为什么附加到 docker busybox 图像时没有登录?