chunshui2003 发表于 2010-11-8 16:32

Fortran6.6中有没有类似matlab里面sign的函数

matlab里面的sign函数为sign(a), 如果a的值为正,则返回1;为0则返回0;为负则返回-1。
Fortran中也有sign,但表达式为sign(a,b),b>=0,返回abs(a);b<0,返回-abs(a)。
如果有的话请告诉是哪一个,谢谢。

Rainyboy 发表于 2010-11-8 17:45

回复 1 # chunshui2003 的帖子

既然如此,楼主把sign(1,a)当做matlab里的sign(a)不就好了?

chunshui2003 发表于 2010-11-8 21:21

回复 2 # Rainyboy 的帖子

谢谢你的回答,但如果在sign(1,a)中a=0的话,那么返回值为1,但实际上的值应该为0才对,所以不行。

smtmobly 发表于 2010-11-9 16:54

自己写一个不是一样嘛
def sign(b):
   return sign(1,b)-1/2*(sign(1,b)+sign(1,-b))

chunshui2003 发表于 2010-11-10 17:35

回复 4 # smtmobly 的帖子

感谢你的帮助,因为我之前一直用matlab,所以fortran是从0开始。以后会多努力的。

smtmobly 发表于 2010-11-12 14:18

回复 5 # chunshui2003 的帖子

客气了,我也没正儿八经的用过Fortran,算法都是一样的吧!

smtmobly 发表于 2010-11-12 14:18

我这个是python语言的描述!

chunshui2003 发表于 2010-11-13 12:48

回复 7 # smtmobly 的帖子

python我是第一次听说,看来还是知道的太少。不过语言之间都是有关联性的。

zengerzheng 发表于 2011-1-11 16:52

很简单,复习一下符号函数的定义就知道该怎么做了。符号函数为本真值除以非零模。
页: [1]
查看完整版本: Fortran6.6中有没有类似matlab里面sign的函数