mmSCI 发表于 2020-2-27 10:12:10

fortran有没有像matlab的矩阵条件赋值操作?

比如,matlab中二维矩阵A,对A中大于0的元素赋值1,小于零的赋值-1,A(A>0)=1 A(A<0)=-1.fortran有没有类似的简单操作。

li913 发表于 2020-2-27 11:35:11

where(a>0)
a=1
else where(a<0)
a=-1
end where

or

where(abs(a)>0) a=a/abs(a)

mmSCI 发表于 2020-2-27 11:38:39

li913 发表于 2020-2-27 11:35
where(a>0)
a=1
else where(a0) a=a/abs(a)

感谢,感谢

mmSCI 发表于 2020-2-27 11:53:03

li913 发表于 2020-2-27 11:35
where(a>0)
a=1
else where(a0) a=a/abs(a)

那如果是大于0的+1,小于0的减1是不是这样?
where(a>0)
a=a+1
else where(a<0)
a=a-1
end where

li913 发表于 2020-2-27 21:23:25

mmSCI 发表于 2020-2-27 11:53
那如果是大于0的+1,小于0的减1是不是这样?
where(a>0)
a=a+1


是的。如果a是实数,你需要考虑误差,即多小的数看作零? 比如:where(a>1.0e-6)
页: [1]
查看完整版本: fortran有没有像matlab的矩阵条件赋值操作?