Fortran Coder

查看: 13952|回复: 5

[求助] fortran中向量可以和数字比较大小吗

[复制链接]

7

帖子

3

主题

0

精华

入门

F 币
42 元
贡献
24 点
发表于 2019-4-12 09:33:38 | 显示全部楼层 |阅读模式
新手求助各位大佬,a = MERGE(0.0_8,a,abs(a)<1.0e-20_8)
这个命令里面a是一个向量(REAL(8), DIMENSION(n)         :: a),1.请问向量可以和具体的数字比较大小吗?即abs(a)<1.0e-20_8
2.如果这个命令是可以运行的,那是不是针对a向量里面的每一个元素进行上述merge的操作呢?

93

帖子

0

主题

0

精华

大师

F 币
641 元
贡献
283 点

规矩勋章元老勋章新人勋章

发表于 2019-4-12 09:43:49 | 显示全部楼层
如果 a 是数组,那么 abs(a) < 1.0e-20_8 结果就是 逻辑型数组,类似于 logical z(n)

merge( x , y , z ) 允许通过数组进行判定。
如果 z 是逻辑型数组,那么merge的结果也是数组。
天之道,损有余而补不足

7

帖子

3

主题

0

精华

入门

F 币
42 元
贡献
24 点
 楼主| 发表于 2019-4-12 10:02:53 | 显示全部楼层
胡文刚 发表于 2019-4-12 09:43
如果 a 是数组,那么 abs(a) < 1.0e-20_8 结果就是 逻辑型数组,类似于 logical z(n)

merge( x , y , z ) ...

谢谢~ fortran竟然是这样操作的hhh,好有意思,学习了学习了,多谢大佬

1948

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1298 元
贡献
547 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

发表于 2019-4-12 22:51:41 | 显示全部楼层
数组片段和整体操作,是fortran的强项,也是区别于其他语言很独特(方便)的重要一点。

79

帖子

17

主题

0

精华

专家

齊天大聖

F 币
433 元
贡献
266 点
发表于 2019-6-26 22:56:54 | 显示全部楼层
又复习了一遍,果然是要不停得使用才行啊

7

帖子

3

主题

0

精华

入门

F 币
42 元
贡献
24 点
 楼主| 发表于 2019-6-27 11:28:01 | 显示全部楼层
胡文刚 发表于 2019-4-12 09:43
如果 a 是数组,那么 abs(a) < 1.0e-20_8 结果就是 逻辑型数组,类似于 logical z(n)

merge( x , y , z ) ...

您好,感谢您的回复,还有一个问题
MERGE(SUM(gmat(:,1)*avec*bvec), 0.0_8, af==1 .and. bf==12)
其中gmat是n1×n2维矩阵,avec, bvec, af, bf 都是n1维的向量,我想请问一下这个结果是输出什么呢
因为我一直以为merge(x,y,z)里面x,y,z应该有相同维度,但是上式中的第一个位置用了sum函数,我以为sum输出的是一个数,所以我不知道怎么理解这个式子~

您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-3-29 20:41

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表