Fortran Coder

查看: 13711|回复: 4
打印 上一主题 下一主题

[求助] MERGE函数求助

[复制链接]

7

帖子

3

主题

0

精华

入门

F 币
42 元
贡献
24 点
跳转到指定楼层
楼主
发表于 2019-6-27 11:29:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
新手求助~
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输出的是一个数,所以我不知道怎么理解这个式子~

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
沙发
发表于 2019-6-27 12:12:27 | 只看该作者
merge(x,y,z)  x 和 y 必须是相同的维度,相同的大小。z 不需要
在你的语句中,0.0_8 是单变量。
SUM(gmat(:,1)*avec*bvec) 也是单变量。

是的,你的认为是对的,SUM输出的是一个单变量。

7

帖子

3

主题

0

精华

入门

F 币
42 元
贡献
24 点
板凳
 楼主| 发表于 2019-6-27 14:05:35 | 只看该作者
vvt 发表于 2019-6-27 12:12
merge(x,y,z)  x 和 y 必须是相同的维度,相同的大小。z 不需要
在你的语句中,0.0_8 是单变量。
SUM(gmat( ...

您好,我理解你的意思了,但是我还是有点疑问,就是z这里是af==1 .and. bf==12,也就是一个逻辑数组,这个在当前merge语句中怎么使用呢(也就是merge的最终结果等于什么呢)

如果x=(1,2,3),y=(2,4,6),z=(0,1,0),那我知道merge(x,y,z)=(2,2,6)
如果x=1,y=2,z=(0,1,0),那merge(x,y,z)等于什么呢

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
地板
发表于 2019-6-27 15:13:43 | 只看该作者
(2,1,2)




回复

使用道具 举报

7

帖子

3

主题

0

精华

入门

F 币
42 元
贡献
24 点
5#
 楼主| 发表于 2019-6-27 18:41:48 | 只看该作者

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

本版积分规则

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

GMT+8, 2024-12-28 16:55

Powered by Tencent X3.4

© 2013-2024 Tencent

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