极限测试之Matlab与Forcal动态生成函数的效率
来源:互联网 发布:网络文案岗位职责 编辑:程序博客网 时间:2024/06/08 00:22
程序动态生成一些函数,然后调用这些函数,体现了脚本的优势。
以下Forcal程序动态编译了函数 f(x,y)=x+y ,然后执行该函数,共进行了10000次。
!using("sys","string");mvar:t0=clock();main(:pf,a,i,s)= oo{pf=fcfor()}, //申请保存Forcal表达式句柄的FcData数据指针 s=0, i=0, while{++i<=10000, oo{comfors(pf,ws("f(x,y)=")+ws("x+y"),2,100,0,0)}, //将Forcal动态字符串编译为全局的实数表达式 a=HFor("f"), //获得函数f的句柄 s=s+a[1,0] //动态调用函数f }, s;[clock()-t0]/1000;
结果:
10000.
0.359 秒
matlab完成类似的功能参考:http://forum.simwe.com/archiver/tid-983780.html
由于matlab的函数必须存为磁盘文件才能使用(这应该是一个很大的缺点),故动态编译运行的效率必然很低。
程序动态生成函数的一个应用是:数据拟合中,常常要为数据寻找一个最佳的拟合公式,此时可按一定的规则生成一些函数,然后检查这些函数哪个最佳的。
- 极限测试之Matlab与Forcal动态生成函数的效率
- 极限测试之Matlab与Forcal动态内存管理效率
- 极限测试之Matlab与Forcal普通函数调用效率
- 极限测试之Matlab与Forcal的递归函数调用效率
- 极限测试之Matlab与Forcal矩阵运算效率测试
- 极限测试之Matlab与Forcal编译运行大型程序的效率
- 极限测试之Matlab与Forcal代码矢量化
- 极限测试之Matlab与Forcal真实演练
- 极限测试之Matlab与Forcal编译计算含自变量的简单长表达式
- 极限测试之Matlab与Forcal的错误(异常)处理
- 极限测试之Matlab与Forcal有无JIT加速器的比较
- 极限测试之Matlab和Forcal编译含简单计算的长表达式
- Lu动态生成函数的效率
- 函数极限limit [matlab]
- Forcal扩展动态库之 OpenFcGl
- Forcal扩展动态库之 FcData
- MATLAB中datestr与datenum的函数效率问题
- FORCAL与C/C++、MATLAB、Python、Lua等各种语言的速度比较
- 基于软件体系结构的应用部署方案初探
- 由VB的KeyCode和KeyAscii到扫描码、虚拟码的思考
- 新用户的创建、表的创建及增删改查(Oracle)
- dp专辑M - River Hopscotch [二分查找]
- 极限测试之Matlab与Forcal的错误(异常)处理
- 极限测试之Matlab与Forcal动态生成函数的效率
- 简单窗口关闭退出代码
- 素数回文
- JRTPLIB 3.5.2手册中文版---part9
- 浅谈多进程多线程的选择
- 在不用第三方参数的情况下,交换两个参数的值
- hdu1019(求最小公倍数要先除后乘)
- HDU 2870 Largest Submatrix
- javasript与c&c++的交互