⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 matcom.html

📁 利用matcom软件可将matlab生成的m文件转换为c++源文件
💻 HTML
字号:
<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><meta name="GENERATOR" content="Microsoft FrontPage 4.0"><meta name="ProgId" content="FrontPage.Editor.Document"><title>New Page 1</title></head><body background="../images/backr.gif"><table width="755" border="0" cellPadding="0" cellSpacing="0" height="100">  <tr>    <td height="81" width="123"><img border="0" src="../images/3333.gif" width="144" height="80"></td>    <td height="81" width="628">      <div align="center">        <img border="0" src="../images/title.gif" width="471" height="60">      </div>    </td>  </tr></table><p><font size="2">您的位置&gt;&gt;</font><a href="http://www.sxren.com"><font size="2">山西人首页</font></a><font size="2">>&gt;<a href="../../index.htm">软件教程</a>>&gt;<a href="../vb.htm">程序设计</a>>&gt;<a href="../cxoth2.htm">其它</a></font><br>  <br></p>  <table width="81%" border="0" align="center">  <tr>     <td valign="top" height="1688">       <table border="0" width="100%">        <tr valign="top">           <td height="1669">             <p align="center"><font size="3" face="宋体"><strong><font size="4" color="#0000FF">Matcom:Matlab与C</font></strong><font size="4" color="#0000FF"><sup><strong>++</strong></sup><strong>结合的有效途径</strong></font></font></p>            <p align="center"><font size="3" face="宋体">林 岚<sup><b>*</b></sup> 周云波 杨玉星 林家瑞</font></p>            <p align="left">&nbsp;</p>            <p align="left"><font size="3"><strong>1 </strong></font><font size="3" face="宋体"><strong>工程设计软件Matlab特点分析</strong></font><font size="3"><br>                Matlab是MathWorks公司于1982年推出的一套高性能的数值计算和可视化软件。它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个方便、界面友好的用户环境。它还包括了ToolBox(工具箱)的各类问题的求解工具,可用来求解特定学科的问题。其特点是:<br>                (1)可扩展性:Matlab最重要的特点是易于扩展,它允许用户自行建立指定功能的M文件。对于一个从事特定领域的工程师来说,不仅可利用Matlab所提供的函数及基本工具箱函数,还可方便地构造出专用的函数,从而大大扩展了其应用范围。当前支持Matlab的商用Toolbox(工具箱)有数百种之多。而由个人开发的Toolbox则不可计数。<br>                (2)易学易用性:Matlab不需要用户有高深的数学知识和程序设计能力,不需要用户深刻了解算法及编程技巧。<br>                (3)高效性:Matlab语句功能十分强大,一条语句可完成十分复杂的任务。如fft语句可完成对指定数据的快速傅立叶变换,这相当于上百条C语言语句的功能。它大大加快了工程技术人员从事软件开发的效率。据MathWorks公司声称,Matlab软件中所包含的Matlab源代码相当于70万行C代码。<br>                由于Matlab具有如此之多的特点,在欧美高等院校,Matlab已成为应用于线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具;在研究单位、工业部门,Matlab也被广泛用于研究和解决各种工程问题。当前在全世界有超过40万工程师和科学家使用它来分析和解决问题。<br>                然而Matlab自身所存在的某些缺点限制了它的应用范围。<br>                (1)Matlab是一种解释性语言,因此它的实时效率是相当差的。例如在笔者所从事的一个心电信号处理项目中,采用Matlab语言来处理5分钟的心电数据,在486/66系统机上需要25分钟,而同样的算法,用C语言实现,仅需30多秒。由此可见,Matlab的语言执行效率是比较低的。<br>                (2)Matlab程序不能脱离其环境运行,因此它不能被用于开发商用软件。<br>                (3)Matlab程序可以被直接看到程序的源代码,因而不利于算法和数据的保密性。</font></p>            <p align="left"><font size="3"><strong>2 </strong></font><font size="3" face="宋体"><strong>Matcom:Matlab与C</strong><sup><strong>++</strong></sup><strong>的完美结合</strong></font><font size="3"><br>                MathTools公司推出的Matcom(可于http://www.mathtools.com处获取)可以说是以上问题的完美解决。它可将Matlab的源代码译成同等功能的C<sup>++</sup>源码。既保持了Matlab的优良算法,又保持了C<sup>++</sup>的高执行效率。<br>                下面将详细介绍如何使Matlab与C<sup>++</sup>接口。<br>                运行环境:<br>                Matcom 3.0<br>                Matlab 5.1<br>                Visual C<sup>++</sup> 5.0<br>                中文Windows 95<br>                PC:486/66<br>                (1)首先应设置Matcom所对应的编译器类型、数据类型。<br>                (2)将你所需要的.M文件翻译成C源码。<br>                在这里将用一个简单的滤波器程序作为范例。<br>                Matlab源程序:<br>                Lin.m<br>                <br>                b=[1 2 1];<br>                a=[1 -1.58 0.64];n=50; <br>                x=[1, ones(1,n-1)];<br>                y=filter(b,a,x);<br>                plot(y./70,'*');<br>                hold on<br>                plot(x,'.');<br>                grid;<br>                <br>                下面给出了经Matcom翻译后的C<sup>++</sup>源程序。<br>                Lin.cpp<br>                <br>                M&lt;double&gt; b(&quot;b&quot;,0,0); <br>                M&lt;double&gt; a(&quot;a&quot;,0,0); <br>                M&lt;double&gt; n(&quot;n&quot;,0,0);<br>                M&lt;double&gt; x(&quot;x&quot;,0,0); <br>                M&lt;double&gt; y(&quot;y&quot;,0,0);<br>                b=(BR(1.0),2.0,1.0);<br>                a=(BR(1.0),-1.58,0.64);<br>                n=50.0;<br>                x=(BR(1.0),ones(1.0,n-1.0));<br>                y=filter(b,a,x);<br>                plot(rdivide(y,70.0),TM(&quot;*&quot;));<br>                hold(TM(&quot;on&quot;));<br>                plot(x,TM(&quot;.&quot;));<br>                grid();<br>                (3)Visual C<sup>++</sup>环境设置。<br>                在Visual C<sup>++</sup>中的&quot;Project / Settings / C, C<sup>++</sup>               / Preprocessor /Additional include subdirectories&quot;中填入当前Matcom所处的路径.。(如&quot;c:\matcom\&quot;)在Visual               C<sup>++</sup>中的工程窗口处&quot; &quot;Project / Add to Project / Files&quot;.加入mlibvc0.lib库文件。<br>                (4)修改C<sup>++</sup>源代码。<br>                注意:<br>                ①在头文件处应包含matlib.h.<br>                #define MLIB 0<br>                #include &quot;matlib.h.&quot;<br>                ②在类成员函数CMfcApp::InitInstance中调用. InitM启动对Matlab函数的调用。<br>                BOOL CEcgstarApp::InitInstance()<br>                {<br>                  TRACE0(&quot;initM\n&quot;);<br>                 initM(stin,stout,sterr);<br>                 ......<br>                }<br>                ③在类构造函数CMfcApp::CMfcApp.中不要调用任何Matlab函数<br>                ④在类构造函数CMfcApp::~CmfcApp中调用exitM结束对Matlab函数的调用。<br>                CEcgstarApp::~CEcgstarApp()<br>                {<br>                  exitM();<br>                <br>                }<br>                ⑤在程序中合适的位置插入经Matcom翻译过后的C<sup>++</sup>源码。<br>                ⑥编译工程文件,就可得到你所需的结果。</font></p>            <p align="left">&nbsp;</p>            </td>        </tr>      </table>    </td>  </tr></table><p>  <a href="../cxoth2.htm"><img border="0" src="../images/exit.gif" align=right width="60" height="45"></a> </p></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -