- 0
- 0
- 约1.88千字
- 约 2页
- 2024-04-30 发布于上海
- 举报
matlab程序转换和在excelVBA中的调用。
金融行业中VBA有着几乎最广泛的运用,但是很多人苦于VBA很难找到如同matlab强大的数学运算工具库,而在某些问题的处理上会大费周章。
首先打开matlab(我的版本matlab2006b,version7.3),在命令窗口输入指令:mbuild-setup
出现选择:
PleasechooseyourcompilerforbuildingstandaloneMATLABapplications:
??
Wouldyoulikembuildtolocateinstalledcompilers[y]/n?
接着选择No
然后出现选择项:
Selectacompiler:
BorlandC++Builderversion6.0
BorlandC++Builderversion5.0
BorlandC/C++(freecommandlinetools)version5.5
LccCversion2.4.1
MicrosoftVisualC/C++version8.0
MicrosoftVisualC/C++version7.1
MicrosoftVisualC/C++version6.0
??
[0]None
我们是要转换为excel可以调用的compiler,所以5,6,7都可。我自己的电脑装有VC++6.0,所以我选择的7
接下来就是让你输入你安装的vc++6.0的路径并确认。
??
做好这一步之后,就可以在命令窗口输入指令:deploytool
然后matlab右边会弹出一个操作窗口,然后新建一个项目和路径,记得选择成builderforexcel。
然后在项目里面添加你要转换的所有你自己编写的matlab函数。(必须是matlab的函数,所以必须以function开头)
然后点击buildtheproject的小图标,等着转换完成。
这一步做完后,就可以关闭matlab了。把你之前设立新项目的文件夹下多出的“distrie”和“src两个文件夹拷贝到你要使用这些自定义函数的excel文件所在地方。然后打开excel,再打开excel的vba编辑器(Alt+F11),在编辑器里面点”文件---导入文件“导入刚才拷贝过来的”src“文件夹下后缀名.bas的文件。现在,就可以在excel里面轻松使用你自定义的函数了。调用的函数名称和你写的matlab函数名一样,所以非常简便。
如果函数返回值是一个矩阵,比如A=Personal(),返回的A会是3*3矩阵,那么就拖蓝一片3*3区域,输入=Personal()”,然后点击ctrl+shift+Enter,这样出来的结果,就是你matlab自定义函数Personal()应该返回的矩阵了。
用matlab调用VC++自带的转换器的好处是,在转换时,只需要添加进去你自己写的自定义函数,而自定义函数里面所使用的大量的matlab特有的计算函数是不用再特别找出来添加进去的。这是compiler会帮你干的事情
ps:本来上面写的一些我很快自己就摸索出来了,但是使用的时候忽略了一个小错误,而这个错误是换一台电脑就绝对不会出的错误,结果这种错误找起来,足足找了我2,3个小时。因为调用matlab函数后很不好调试,所以查错是一项超级艰难的过程,特别是matlab运行正常,vba里面运行却出问题的时候。结果原因是matlab里面xlsread这个函数读取excel数据的默认目录和vba调用matlab程序时读取那个excel文件的默认目录完全不一样造成的
(matlab是读取当前程序所在的目录下的文件,而VBA是读取“我的文档”下的文件??)。而巧的是在vba的默认目录里面恰好存在了一个同名的excel文件。本来如果这个文件不存在,我在vba里面一运行,报错就会告诉我在某某路径找不到excel文件,我很快就能fix这个问题,而巧合的那个文件恰好造成vba不会报找不到文件,而只告诉我有逻辑错误,也不说是什么逻辑错误。。。当我最终发现这个错误的时候,差点把血都吐光了
嗯,最后是无奈的吐槽,总之这次又把vba学了不少东西,收获不小,希翼此小文对偶然看到这篇文章的人小有帮助
您可能关注的文档
最近下载
- 核能利用现状及发展趋势讲义(PPT 41张).ppt VIP
- 消防救援-LNG槽罐车事故处置.pptx VIP
- 指数研究与指数化投资系列:风格配置与细分板块内的景气度轮动策略.pdf VIP
- 2020年整理男性公民兵役登记表.doc.docx VIP
- 2025华晋焦煤井下操作技能人员招聘100人(山西)模拟试卷含答案详解.docx VIP
- 2025中国大数据产业白皮书.pdf
- PET Complete教材精品课件unit 5 different feelings.pptx VIP
- 小学三年级上册写字表字帖(可打印).pdf VIP
- (苏教版)数学五年级上册寒假“天天练”作业设计,含30份题组,附参考答案.doc
- 聚乳酸生命周期中CO2的评价.pdf VIP
原创力文档

文档评论(0)