Fortran Coder

标题: MERGE函数求助 [打印本页]

作者: little620    时间: 2019-6-27 11:29
标题: MERGE函数求助
新手求助~
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输出的是一个数,所以我不知道怎么理解这个式子~


作者: vvt    时间: 2019-6-27 12:12
merge(x,y,z)  x 和 y 必须是相同的维度,相同的大小。z 不需要
在你的语句中,0.0_8 是单变量。
SUM(gmat(:,1)*avec*bvec) 也是单变量。

是的,你的认为是对的,SUM输出的是一个单变量。
作者: little620    时间: 2019-6-27 14:05
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)等于什么呢
作者: vvt    时间: 2019-6-27 15:13
(2,1,2)





作者: little620    时间: 2019-6-27 18:41
vvt 发表于 2019-6-27 15:13
(2,1,2)

哦哦,多谢多谢




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2