Fortran Coder

查看: 14369|回复: 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的操作呢?
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

7

帖子

3

主题

0

精华

入门

F 币
42 元
贡献
24 点
6#
 楼主| 发表于 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输出的是一个数,所以我不知道怎么理解这个式子~

79

帖子

17

主题

0

精华

专家

齊天大聖

F 币
433 元
贡献
266 点
5#
发表于 2019-6-26 22:56:54 | 只看该作者
又复习了一遍,果然是要不停得使用才行啊

2022

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1598 元
贡献
689 点

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

地板
发表于 2019-4-12 22:51:41 | 只看该作者
数组片段和整体操作,是fortran的强项,也是区别于其他语言很独特(方便)的重要一点。

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,好有意思,学习了学习了,多谢大佬

101

帖子

0

主题

0

精华

大师

F 币
670 元
贡献
299 点

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

沙发
发表于 2019-4-12 09:43:49 | 只看该作者
如果 a 是数组,那么 abs(a) < 1.0e-20_8 结果就是 逻辑型数组,类似于 logical z(n)

merge( x , y , z ) 允许通过数组进行判定。
如果 z 是逻辑型数组,那么merge的结果也是数组。
天之道,损有余而补不足
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-11-24 02:11

Powered by Tencent X3.4

© 2013-2024 Tencent

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