您的位置:首页 > 其它

从mat文件调用公式

2015-11-04 15:07 411 查看
Matlab中调用公式有两种方式,第一种就是常见的function,自不必多说。

然而,它还有另一种方式,即将公式存入mat文件中,然后通过load方式加载。为了方便起见,设Maple中有如下两个公式:

rfa=(-632.5979493*2^(1/2)*exp(-23.19525814*2^(1/2)*(r-.1390))+13.00132690/r*exp(-19.01250667*2^(1/2)*(r-.1390))+610.2947135*2^(1/2)*exp(-19.01250667*2^(1/2)*(r-.1390)))/r
beta=29346.54546*exp(-23.19525814*2^(1/2)*(r-.1390))+12.62438784/r^2*exp(-19.01250667*2^(1/2)*(r-.1390))-247.1878145/r*2^(1/2)*exp(-19.01250667*2^(1/2)*(r-.1390))-23206.46463*exp(-19.01250667*2^(1/2)*(r-.1390))-(-632.5979493*2^(1/2)*exp(-23.19525814*2^(1/2)*(r-.1390))+13.00132690/r*exp(-19.01250667*2^(1/2)*(r-.1390))+610.2947135*2^(1/2)*exp(-19.01250667*2^(1/2)*(r-.1390)))/r


rfa和beta的表示方式已通过Maple的Conversions to String转成了上面的代码形式。这个形式在Matlab中直接显示会很长,用续行符进行续行会非常耗时,现在的办法就是先将其显示在命令窗口中,即在syms r之后,直接copy上面的代码,Enter后会发现:

>> rfa

rfa =
/
|-894.628599429467614 exp(-32.8030486443329324 r + 4.55962)
\
exp(-26.8877447874229320 r + 3.73739)
+ 13.0013269000000005 -------------------------------------
r
\
+ 863.087060876302417 exp(-26.8877447874229320 r + 3.73739)|/r
/


>> beta

beta =
29346.5454600000012 exp(-32.8030486443329324 r + 4.55962)
%1             %1
+ 12.6243878400000008 ---- - 349.576 ---- - 23206.4646299999986 %1 -
2             r
r
/
|-894.628599429467614 exp(-32.8030486443329324 r + 4.55962)
\
%1                          \
+ 13.0013269000000005 ---- + 863.087060876302417 %1|/r
r                           /
%1 := exp(-26.8877447874229320 r + 3.73739)


可以看到,现在显示形式变了,更加直观,而且会自动转行了。

现在保存到mat文件中,即 save formula rfa beta

下次再m文件中调用它的时候,只需要写入代码:

load formula

rfa=eval(rfa); beta=eval(beta)


注意这里rfa与beta和eval中的rfa与beta要一致,否则会出错:

??? Undefined function or method 'eval' for input arguments of type 'double'.

Error in ==> GraLWTpan at 23
rfa01=eval(rfa01);rfa02=eval(rfa01);rfa03=eval(rfa03);


参考链接:

[1] 饮水思源-MathTools精华区文章阅读:不得不学的函数eval

[2] MATLAB 论坛›MATLAB 基础讨论:matlab复杂公式问题

[3] 新浪博客:matlab中eval函数的用法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: