Fortran Coder

查看: 66|回复: 4

[求助] MERGE函数求助

[复制链接]

7

帖子

3

主题

0

精华

入门

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

回复

使用道具 举报

691

帖子

0

主题

0

精华

大师

F 币
665 元
贡献
372 点

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

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 币
40 元
贡献
23 点
 楼主| 发表于 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)等于什么呢

691

帖子

0

主题

0

精华

大师

F 币
665 元
贡献
372 点

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

QQ
发表于 2019-6-27 15:13:43 | 显示全部楼层
(2,1,2)




回复

使用道具 举报

7

帖子

3

主题

0

精华

入门

F 币
40 元
贡献
23 点
 楼主| 发表于 2019-6-27 18:41:48 | 显示全部楼层

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

本版积分规则

QQ|捐赠本站|Archiver|关于我们 About Us|群聊|Fcode

GMT+8, 2019-7-17 06:26

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

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