回 帖 发 新 帖 刷新版面

主题:[讨论]fortran中有类似于matlab feval函数么

fortran中有类似于matlab feval函数么
也就是给出一个字符串表达式和变量,能计算出表达式结果的?

回复列表 (共17个回复)

沙发

你的要求太高了。。。

板凳


直接用function或者subroutine吧。

3 楼

问题是 我的表达式并不是固定的,也就是说表达式实际上是变量!这是关键

4 楼

[quote]问题是 我的表达式并不是固定的,也就是说表达式实际上是变量!这是关键[/quote]
 你举例说明一下,是要调用很多不同的函数么?

5 楼

对的,就类似于 matlab的 feval()一样,输入的是变量表达式,和变量名
然后求出变量结果
feval("x + y",[x y], [2 5])
结果是7

6 楼

[quote]对的,就类似于 matlab的 feval()一样,输入的是变量表达式,和变量名
然后求出变量结果
feval("x + y",[x y], [2 5])
结果是7[/quote]

不明白你找类似函数的目的是什么,Fortran中很容易实现
real x=2.,y=5.
write(*,*) x+y

7 楼

[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 楼

[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 楼

[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 楼


明白了,就是说终究还是知道表达式的,那直接写表达式就行了,不知楼主寻找类似feval的函数干什么?实在是不明白!(+﹏+)~狂晕(+﹏+)~狂晕

我来回复

您尚未登录,请登录后再回复。点此登录或注册