matlab程序转换和在excel VBA中的调用

207 篇文章 51 订阅

金融行业中VBA有着几乎最广泛的运用,但是很多人苦于VBA很难找到如同matlab强大的数学运算工具库,而在某些问题的处理上会大费周章。我最近就遇到类似的问题。用matlab写了一个庞大的程序后,交到别人手里的时候需要转成VBA。而如果用手写的转换matlab的话,此项工程不下于用VB编写matlab……于是开始了matlabVBA的调用转换过程。经过差不多有4个小时的时间,终于完成了摸索,调试,学习,完美实现的过程。因为网上能查找到的资料写得都异常混乱,我觉得很多人写的基本没有啥强的逻辑关系,估计那些人语文统统没学好。。。我把我自己做的过程简化如下,有兴趣的朋友们可以参照

 

首先打开matlab(我的版本matlab 2006b version7.3),在命令窗口输入指令:

 

mbuild -setup

 

出现选择:

 

Please choose your compiler for building standalone MATLAB applications:
Would you like mbuild to locate installed compilers [y]/n?

 

接着选择No

 

然后出现选择项:

 

Select a compiler:
[1] Borland C++Builder version 6.0
[2] Borland C++Builder version 5.0
[3] Borland C/C++ (free command line tools) version 5.5
[4] Lcc C version 2.4.1
[5] Microsoft Visual C/C++ version 8.0
[6] Microsoft Visual C/C++ version 7.1
[7] Microsoft Visual C/C++ version 6.0
[0] None

 

我们是要转换为excel可以调用的compiler,所以567都可。我自己的电脑装有VC++6.0,所以我选择的7

 

接下来就是让你输入你安装的vc++6.0的路径并确认。

 

做好这一步之后,就可以在命令窗口输入指令:deploytool

 

然后matlab右边会弹出一个操作窗口,然后新建一个项目和路径,记得选择成builder for excel

 

然后在项目里面添加你要转换的所有你自己编写的matlab函数。(必须是matlab的函数,所以必须以function开头)

 

然后点击"build the project"的小图标,等着转换完成。

 

这一步做完后,就可以关闭matlab了。把你之前设立新项目的文件夹下多出的“distrie”“src"两个文件夹拷贝到你要使用这些自定义函数的excel文件所在地方。然后打开excel,再打开excelvba编辑器(Alt+F11),在编辑器里面点文件导入文件导入刚才拷贝过来的”src“文件夹下后缀名.bas的文件。现在,就可以在excel里面轻松使用你自定义的函数了。调用的函数名称和你写的matlab函数名一样,所以非常简便。

 

如果函数返回值是一个矩阵,比如A=Personal(),返回的A会是3*3矩阵,那么就拖蓝一片3*3区域,输入"=Personal()”,然后点击"ctrl+shift+Enter",这样出来的结果,就是你matlab自定义函数"Personal()"应该返回的矩阵了。

 

matlab调用VC++自带的转换器的好处是,在转换时,只需要添加进去你自己写的自定义函数,而自定义函数里面所使用的大量的matlab特有的计算函数是不用再特别找出来添加进去的。这是compiler会帮你干的事情

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fpga和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值