cpubbs论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 5435|回复: 16

求助:如何在LABWINDOWS中调用MATLAB程序?

[复制链接]
发表于 2005-5-29 18:04:45 | 显示全部楼层 |阅读模式
我想利用LABWINDOWS的面板控制键(command button)来调用matlab程序,不知如何编写?
发表于 2005-5-31 07:22:32 | 显示全部楼层
<>CVI和Matlab混合编程,必须要先安装Matlab</P><>在CVI中,建立ActiveX控件服务器,选择Matlab Automatin Server Type Library.(Matlab必须在CVI之前安装才能看到这个选项),创建后将生成三个文件,XXX.fp    XXX。C和XXX.h,将。C和。H文件包含在CVI工程中就可以了。。C文件中包含着CVi和Matlab的接口函数。</P><>其中就包括打开Matlab函数,运行Matlab函数等。</P>
发表于 2005-6-1 05:53:36 | 显示全部楼层
参考CVI的例子:\cvi\samples\activex\matlab
 楼主| 发表于 2005-6-1 06:42:47 | 显示全部楼层
谢谢,我看了它的DEMO还是没看懂.我现在就是有.uir和.c,.h文件.还是不清楚该怎么调用.它的例
子也不能很好的执行.不能显示结果.
我的工作是用MATLAB处理图像,
1:想用LABWINDOWS的面版输入图像文件名,然后转MATLAB处理,最后由MATLAB显示处理后的图像
2:用LABWINDOWS 的面版输入图像灰度范围,然后将参数带入MATLAB程序中,最后显示结果,并可用
LABWINDOWS读去生成的text文件.
我觉的难点在1:将在LABWINDOWS上输入的参数调用到MATLAB中.2:连接MATLAB并运行生成结果显示
出来.
时间比较紧急,麻烦大虾请再说具体一点,该如何编写连接的程序?
拜托了!
发表于 2005-9-3 17:37:25 | 显示全部楼层
2楼的版主,我也在用CVI调用MATLAB,在activex automation server里找不到Matlab Automatin Server Type Library,只找到 matlab application(version 6.5)type library ,这种情况是不是你所说的必须先装matlab啊,而我现在也记不起是先装的哪个了,另外我还想知道,这个matlab application(version 6.5)type library是应用类型库吗?它的功能是做什么的?用这个不行吗?能不能解释一下。谢谢
发表于 2005-9-5 22:40:26 | 显示全部楼层
这个问题已解决,我找出两种
1)先装matlab,再装cvi ,不过这个我没试过,因为重装太麻烦了
2)修改matlab的注册码,重新建立它的CLSID
在注册表里“查找”:matlab application,这时查出的结果会在注册表编辑器里最下面出现,
我的是 {554F6052-79D4-11D4-B067-009027BA5F81}用这个号去替换matlabsrvr.c文件中的clsid
值,就可以了,不过这个matlabsrvr.c文件是要用matlabsrvr.fp重新建才行哦,是不是很简单
啊。呵呵,我可是花了三天的时间才搞定的哦。
对了,若是还是编译不过去,可能就是MLApp_NewDIMLApp (NULL, &amp;hMatlab)要改成MLApp_NewDIMLApp (NULL,1,LOCALE_NEUTRAL,0 &amp;hMatlab),也就是把里面的参数换一下。
我的系统是matlab6.5和cvi5.5,cvi是老了点,可能会有些帮助。呵呵
[此贴子已经被作者于2005-9-5 14:45:57编辑过]

发表于 2006-4-24 21:54:44 | 显示全部楼层
可以去<a href="http://easons.blogbus.com/index.html" target="_blank" >http://easons.blogbus.com/index.html</A>看看
发表于 2010-11-23 01:12:48 | 显示全部楼层
发表于 2014-3-16 15:33:36 | 显示全部楼层
aegeanblue 发表于 2005-6-1 06:42
谢谢,我看了它的DEMO还是没看懂.我现在就是有.uir和.c,.h文件.还是不清楚该怎么调用.它的例
子也不能很好 ...

我也遇到了同样的问题,labwindows和matlab的接口,怎么用labwindows将参数传递给matlab中M文件的变量,从而调用执行M文件,最后传回labwindows中显示!
不知道你解决了没有!请大神指点~!
发表于 2014-11-13 23:54:22 | 显示全部楼层
我在尝试用cvi调用matlab生成的dll, 按照网上的资料来看,mxArray 可能是一个好办法,但我还在这里苦苦调试。因为这里创建mxArrary一直失败。。。。。。 error: Undefined symbol '_mxCreateDoubleMatrix_700' referenced in "d:\Personal\my program try\CVI Try\141112\cvibuild.141112trydll\Debug\trydll.obj".  

mxCreateDoubleMatrix_700 是matrix.h里面声明的一个函数,我也还没调试出来为什么报错。
发表于 2014-11-13 23:54:38 | 显示全部楼层
我在尝试用cvi调用matlab生成的dll, 按照网上的资料来看,mxArray 可能是一个好办法,但我还在这里苦苦调试。因为这里创建mxArrary一直失败。。。。。。 error: Undefined symbol '_mxCreateDoubleMatrix_700' referenced in "d:\Personal\my program try\CVI Try\141112\cvibuild.141112trydll\Debug\trydll.obj".  

mxCreateDoubleMatrix_700 是matrix.h里面声明的一个函数,我也还没调试出来为什么报错。
发表于 2014-11-13 23:55:33 | 显示全部楼层
或者我们可以用传递字符串数组指针的方式把buffer的指针传递给matlab。。欢迎提建议,欢迎指导。。愁啊。。。
发表于 2014-11-13 23:55:37 | 显示全部楼层
或者我们可以用传递字符串数组指针的方式把buffer的指针传递给matlab。。欢迎提建议,欢迎指导。。愁啊。。。
发表于 2017-4-14 13:00:11 | 显示全部楼层
谢谢楼主,现在刚开始用CVI调用MATLAB的DLL,不知道楼主搞清楚了吗,能否给我指导一下,怎么用CVI调用MATLAB的dll,谢谢,QQ504435339
发表于 2018-4-27 22:40:36 | 显示全部楼层
huang110 发表于 2014-11-13 23:54
我在尝试用cvi调用matlab生成的dll, 按照网上的资料来看,mxArray 可能是一个好办法,但我还在这里苦苦调 ...

您好 我现在也遇到了这个情况,请问您解决了么?都快愁死我了

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2025-5-4 22:10 , Processed in 0.706821 second(s), 6 queries , Gzip On, File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表