主题:[讨论]fortran中有类似于matlab feval函数么
bosimaoxiaoyu
[专家分:0] 发布于 2010-09-17 11:44:00
fortran中有类似于matlab feval函数么
也就是给出一个字符串表达式和变量,能计算出表达式结果的?
回复列表 (共17个回复)
沙发
adda [专家分:1520] 发布于 2010-09-17 12:29:00
你的要求太高了。。。
板凳
jstzhurj [专家分:4680] 发布于 2010-09-17 12:53:00
直接用function或者subroutine吧。
3 楼
bosimaoxiaoyu [专家分:0] 发布于 2010-09-17 12:59:00
问题是 我的表达式并不是固定的,也就是说表达式实际上是变量!这是关键
4 楼
jstzhurj [专家分:4680] 发布于 2010-09-17 13:08:00
[quote]问题是 我的表达式并不是固定的,也就是说表达式实际上是变量!这是关键[/quote]
你举例说明一下,是要调用很多不同的函数么?
5 楼
bosimaoxiaoyu [专家分:0] 发布于 2010-09-17 14:05:00
对的,就类似于 matlab的 feval()一样,输入的是变量表达式,和变量名
然后求出变量结果
feval("x + y",[x y], [2 5])
结果是7
6 楼
jstzhurj [专家分:4680] 发布于 2010-09-17 14:20:00
[quote]对的,就类似于 matlab的 feval()一样,输入的是变量表达式,和变量名
然后求出变量结果
feval("x + y",[x y], [2 5])
结果是7[/quote]
不明白你找类似函数的目的是什么,Fortran中很容易实现
real x=2.,y=5.
write(*,*) x+y
7 楼
BiCGSTAB [专家分:780] 发布于 2010-09-17 14:27:00
[quote][quote]对的,就类似于 matlab的 feval()一样,输入的是变量表达式,和变量名
然后求出变量结果
feval("x + y",[x y], [2 5])
结果是7[/quote]
不明白你找类似函数的目的是什么,Fortran中很容易实现
real x=2.,y=5.
write(*,*) x+y[/quote]
他的意思是说表达式是未知的,是函数的Input Argument。即
sub(expr,var1,[var2,...],result)
character(len=*)expr
我觉得如果表达式局限性比较强,不太复杂的话,可以自己写一个。
当然现成的内部函数肯定是没有了。
8 楼
jstzhurj [专家分:4680] 发布于 2010-09-17 14:35:00
[quote][quote][quote]对的,就类似于 matlab的 feval()一样,输入的是变量表达式,和变量名
然后求出变量结果
feval("x + y",[x y], [2 5])
结果是7[/quote]
不明白你找类似函数的目的是什么,Fortran中很容易实现
real x=2.,y=5.
write(*,*) x+y[/quote]
他的意思是说表达式是未知的,是函数的Input Argument。即
sub(expr,var1,[var2,...],result)
character(len=*)expr
我觉得如果表达式局限性比较强,不太复杂的话,可以自己写一个。
当然现成的内部函数肯定是没有了。[/quote]
你这话我不太明白了,什么叫表达式未知?既然人都不知道该用什么表达式,电脑还能知道么?
sub(expr,var1,[var2,...],result)
character(len=*)expr
具体执行什么运算不还是要知道表达式么?
9 楼
BiCGSTAB [专家分:780] 发布于 2010-09-17 15:11:00
[quote][quote][quote][quote]对的,就类似于 matlab的 feval()一样,输入的是变量表达式,和变量名
然后求出变量结果
feval("x + y",[x y], [2 5])
结果是7[/quote]
不明白你找类似函数的目的是什么,Fortran中很容易实现
real x=2.,y=5.
write(*,*) x+y[/quote]
他的意思是说表达式是未知的,是函数的Input Argument。即
sub(expr,var1,[var2,...],result)
character(len=*)expr
我觉得如果表达式局限性比较强,不太复杂的话,可以自己写一个。
当然现成的内部函数肯定是没有了。[/quote]
你这话我不太明白了,什么叫表达式未知?既然人都不知道该用什么表达式,电脑还能知道么?
sub(expr,var1,[var2,...],result)
character(len=*)expr
具体执行什么运算不还是要知道表达式么?[/quote]
好吧,我的意思是expr可变。
10 楼
jstzhurj [专家分:4680] 发布于 2010-09-17 15:22:00
明白了,就是说终究还是知道表达式的,那直接写表达式就行了,不知楼主寻找类似feval的函数干什么?实在是不明白!(+﹏+)~狂晕(+﹏+)~狂晕
我来回复