导航

随笔分类 -  Matlab与VC编程

摘要:众所周知,基于simulink的仿真属于伪实时仿真,其仿真时间并不与实际时间同步,而与机器执行速度和模型复杂度有关。那么怎样实现simulink环境下的实时仿真呢。Matlab提供一个实时工作环境(RTW)用于将simulink模型转化成C程序,在外部模式下这个C程序 是可以和simulink进行数据交换的。如果在C程序中加入时钟中断,就可实现simulink下的实时仿真。下面谈谈这种方法的具体实现 步骤。 第一步、新建模型,这个模型要包含信号显示的模块(scope等); 阅读全文

posted @ 2007-05-31 22:40 yunbo 阅读(4682) 评论(0) 推荐(1)

摘要: 命令行如何运行simulink外部模式build和start 用sim()函数 该函数的调用格式为: [t,x,y]=sim(f1,tspan,options,ut) 其中f1为SIMULINK的模型名,tspan为仿真时间控制变量;参数options为模型控制 参数;ut为外部输入向量。 ------------------------------------------------------------------------- ------- 请问matlab中的仿真模块,可以看到起源程序吗? 那些基本模块是看不了源代码的,有很多模块是用subsystem组成的,你可以用 look under mask(鼠标右键)看到里面是怎样用子模块搭接的,还有很多是 由s函数写成的simulink的模块,这些直接edit sfunname(s函数的名字) 就可以看到源代码 --------------------------- 阅读全文

posted @ 2007-03-31 22:46 yunbo 阅读(5374) 评论(7) 推荐(0)

摘要:凡兄弟 发表于 2005-11-9 14:30:32 VC + MATLAB7 C Shared Library 所有调用MATLAB7 Compiler产生的共享库的程序都具有如下的大致结构: 1. 声明变量或者是函数作为输入变量; 2. 调用 mclInitalizeApplication函数,并测试是否成功,该函数设置了一个全局的MCR状态,并且构建MCR实例; 3. 对于每个库,调用一次Initalize函数,为库创建一个MCR实例; 4. 调用库中的函数,并处理其结果(这是程序的主要部分); 5. 为每个库调用一次Terminate函数,用于注销相联系的MCR; 6. 调用mclTerminateApplication函数,释放与全局MCR状态相联系的资源; 7. 清除变换,关闭文件等,然后退出。 根据MATLAB的帮助文档中提供的例子,利用如下文件进行练习: /extern/examples/ 阅读全文

posted @ 2006-10-26 23:22 yunbo 阅读(2673) 评论(1) 推荐(0)

摘要:山城棒棒儿军 @ 2004-10-08 20:10 http://www.mathworks.com/support/solutions/data/1-OQHIV.html?solution=1-OQHIV Technical Solutions Solution Number: 1-OQHIV Date Last Modified: 28 Sep 2004 Product: MATLAB® Compiler Reported in Release: R14 Fixed in Release: Platform: Windows Operating System: Windows Any Subject: How do I set up a Microsoft Visual Studio project to work with MATLAB Compiler 4.0? br 阅读全文

posted @ 2006-10-26 23:20 yunbo 阅读(839) 评论(0) 推荐(0)

摘要:1、启动MATLAB7,新建m文件,输入: function myfun(n) t=0:n; y=sin(t); plot(y); 保存文件为:myfun.m 2、在Matlab 的Command Window 下输入命令:mcc -B csglsharedlib:mylib myfun 生成动态链接库DLL。Matlab 会生成一系列文件, 其中mylib.h mylib.lib mylib.dll mylib.ctf是我们这里需要的。 3、 在VC++中使用Matlab 生成的动态链接库( *.DLL) 以上面创建的TestDllApp工程为例。将mylib.h mylib.lib mylib.dll mylib.ctf文件拷贝至TestDllApp工程目录下并添加入工程。修改TestDllApp.cpp文件: // TestDllApp.cpp : Defines the entry point for the console application 阅读全文

posted @ 2006-10-26 23:09 yunbo 阅读(2934) 评论(5) 推荐(0)

摘要: 东北大学 薛定宇 (原作) 转载时请注明作者信息、网址,谢谢 MATLAB 到 C 语言程序的转换可以由两种途径完成,其一是 MATLAB 自己提供的 C 语言翻译程序 mcc, 另一种是原第 3 方公司 MathTools 开发的 MATCOM。后者出现较早,功能远比 MATLAB 自己的翻译程序强大,所以 MathTools 公司已经被 MathWorks 公司收购,并已将其开发技术融于新推出的 MATLAB 6.0 (Release 12) 中。 依本人的观点,二者都不完善,有大量的 MATLAB 函数及数据类型是不能兼容变换的,所以有时会发现将简洁的 MATLAB 程序翻译成 C 语言程序很晦涩。翻译后的 C 程序几乎不适合手动去维护,更谈不上升级了。 有几个不兼容的地方是不能令人容忍的,例如 eval() 函数在 C 翻译下是不兼容的,最新的 MATLAB 6 才刚刚敢说已经部分兼容了,但离真正的兼容还有很长的路要走,有很多艰难的技术困难需要克服,短时间内不可能有突破性的进展 阅读全文

posted @ 2006-10-18 21:51 yunbo 阅读(2450) 评论(0) 推荐(0)

摘要: MATLAB是什么东东?不用我多说了,大批的高手会告诉你它的无数好处。但是MATLAB程序存在的一般问题是: 1、运算速度较慢,特别是有for i=1:??? for j=1:??? ...... end end时,那你就死定了。 2、无法脱离MATLAB环境运行,虽然你可以用MATLAB自带的工具把M文件转成可执行程序,但是执行时,你只能看到一个黑黑的窗口,难道,这就是......Windows? $%&%^$##%&。 3、GUI功能差。许多大侠不愿意看到2中所述的DOS-Windows界面,于是使用了MATLAB带的GUI生成工具。(不要扔臭鸡蛋!我知道你用Graphic Editor改了一下界面,发现以前的工作全都白做了——因为被覆盖了,西西)但是MATLAB提供的控件和事件实在有限。GUI界面做好后放在机器里,向尚未进实验室的师妹(们)炫耀一下,还勉强可以增加一些魅力值。如果被专家看到了,西西。只怕效果不太美妙。 因此,如果能够实现MATLA 阅读全文

posted @ 2006-10-18 21:49 yunbo 阅读(2144) 评论(0) 推荐(0)

摘要:Topic: (转贴)Matlab与C++接口与混合编程讨论小结 Print this page -------------------------------------------------------------------------------- (转贴)Matlab与C++接口与混合编程讨论小结 Copy to clipboard Posted by: 小和尚 Posted on: 2002-10-18 10:01 小和尚注:可能文章有点老,不过应该还是有用的. 本文结合SMTH上的Mathtools版大家的讨论和自己的一些使用心得,主要对 MIDEVA(Matcom)的使用方法作简单介绍。本文将版面上一些相关文章作了总结 并将精华区中dodoo所写的“用c编写mex程序”一文以及energy所写的“VC++中 使用MATLAB的C++数学库和MCC生成的程序”作为本文的第二章。希望大家能对这 个主题有一个全面的了解,同时也能进行 阅读全文

posted @ 2006-10-18 21:21 yunbo 阅读(2559) 评论(0) 推荐(0)

摘要:3.1.1 Matcom能作什么   Matcom是一个十分有用的.m文件翻译器(Replacement),它的主要优点我认为有 以下几点: 1它提供了matlab中.m文件与其他高级语言的接口,使.m文件可以编译为脱离matlab环境独立执行的可执行性程序,这样 。提高了代码的复用率 。提高了代码的执行速度。使纯文本的.m文件变为二进制的可执行程序,增加了知识保护的安全性   2它提供了近千个数学函数,对于其他高级语言编译器来说,提供了一个丰富?[Matlab] 的数学库,基本上在matlab上能用的常用函数都可以在高级语言中直接调用。 数学函数主要包括: 。矩阵属性函数 。矩阵生成函数 。矩阵生成函数 。矩阵操作函数 。矩阵变换函数 。数学函数.特殊函数 。数值函数 。串函数 。绘图函数 。颜色函数 。函数函数。存盘及读文件 。系统资源函数 。系统操作函数 。判断函数(Is函数族) 。付氏变换 等等,可参见本文附录 提供了.m文件的方便快捷的编译调适环境,可以step, watch,breakpoint等各种 调试手段。 阅读全文

posted @ 2006-10-18 19:38 yunbo 阅读(2373) 评论(2) 推荐(0)

摘要:实现VC与Matcom的接口步骤  Matcom是Mathworks公司推出的第一个由Matlab到C++的编译开发软件平台,它的可视化界面,方便丰富的调试功能和对数学库的强大支持受到广大技术人员的重视。现在的最高版本为Matcom4.5。  我们可以通过在Matcom中file菜单下的compile to exe or dll调用.m文件编译,在Matcom的debug目录下找到生成的cpp、exe、dll文件。把需要的文件加到VC开发环境的工程中,再包含头文件就可以实现调用。也可以直接在VC环境下使用科学运算库,即Matcom的Matrix,它是按照Matcom的语法在VC中实现类似于Matlab函数的方法。但是这里还有一种将Matcom集成到VC环境的方法,即安装Visual Matcom的方式,这种方式操作更加简便易行,只需要熟悉Matlab编程,经过简单的步骤就可以轻松实现VC环境中调用Matlab。下面介绍Visual Matcom开发环境的安装。   (1)拷贝\bin\usertype.dat文件(指Matcom的安装路径)到\Common\MSDev98\Bi 阅读全文

posted @ 2006-10-18 19:18 yunbo 阅读(2236) 评论(0) 推荐(0)

摘要:编译环境:VC6.0 和Matlab7.04 设置: 1、Tools--Options--Directories--Include Files中添加:matlab安装目录\extern\include; Tools--Options--Directories--Library Files中添加:matlab安装目录\EXTERN\LIB\WIN32\MICROSOFT\MSVC70;和版本有关 2、Project--Settings--Link--Object/Library modules中添加:libeng.lib libmx.lib 阅读全文

posted @ 2006-10-17 23:41 yunbo 阅读(1146) 评论(0) 推荐(0)

摘要:MATcom是MATHworks公司退出的第一个由MATLAB到C++的编译开发软件平台,其最新版本为4.5,集成调试编译环境卫MIDEVA。通过MATcom连接MATLAB m文件有以下三种方法: (1) 经过简单的设置,由MIDEVA将m源文件转换为C/C++,然后添加到MSVC工程中。 (2) 由MIDEVA直接生成EXE文件,然后在VC中通过Shell调用。这种方法简单方便,但运行时出现一个控制台窗口,而且由于VC和MATLAB之间不能交互,通用性差,仅适用于VC调用MATLAB实现图形显示的场合。 (3) 通过Visual MATcom工具条,使用Add-in,这种方法提供了MATLAB和VC直接集成的途径,且可快速集成m文件到VC工程中创建独立的C/C++应用程序、C MEX DLL,在调试过程中可以查看矩阵变量的值,可直接修改m源文件而不是修改生成的C/C++文件。 ............................................. 阅读全文

posted @ 2006-10-17 01:32 yunbo 阅读(26219) 评论(39) 推荐(0)