vc与matlab混编之matcom

      1.安装及配置  

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

  2.下面详细介绍如何将m文件编译后放入VC中。
1、启动MIDEVA,File->New,新建如下Test1.m文件:

x=1:0.1:10; y=sin(x); plot(x,y); 

vc与matlab混编之matcom_第1张图片

点击file-》compile to dll,生成*.cpp文件,*.h文件;

m文件保存的默认位置为:matcom安装目录\matcom45,生成的C++文件保存的默认位置为:matcom安装目录\matcom45\Debug\,本例matcom安装目录为C盘 即 C:\matcom45\Debug\,在该目录下将会产生Test1.h、Test1.cpp、Test1.r 、Test1.obj文件。

将C:\matcom45\lib\下的matlib.h 和v4501v文件和C:\matcom45\debug下的Test1.h文件拷贝到工程Example目录下;如下图

vc与matlab混编之matcom_第2张图片

vc与matlab混编之matcom_第3张图片vc与matlab混编之matcom_第4张图片

关于matcom与VC的数据传递

在matcom与VC的混合编程中,把double等数据类型赋给Mm数据类型时不会发生问题的,如
  Mm x;
double y=323232;
x=y;

但有时候,我们要想把计算后的Mm中的值取出来,显示在文本框中, 这时可用到Mm的成员函数getpr(假设数据是实数),复数的要用到另一个函数getpi。下面给出一个例子:
#include "stdafx.h"
#include "matlib.h"

int main() {
  initM(MATCOM_VERSION);

  Mm x;
  x=randM(4)+0.5;
display(x);
display(x(1));
display(x(2));

//unsigned aaa=size(x);
double ttt=5;//ttt的值可以随便的,为0,1,2,…,都一样的

double *ddd=new double[16];

ddd=x.getpr(&ttt); //ttt的值可以随便的,为0,1,2,…,都一样的

for(int i=0;i<16;i++)
printf("ddd=%f\n",*ddd++);

  exitM();
  return 0;
}
 
 
注意事项:编译出现缺失mspdb100.dll,只需要把D:\Microsoft Visual Studio 10.0\Common7\IDE下的mspdb100.dll复制到D:\Microsoft Visual Studio 10.0\VC\bin,当在vc调试时,删除mspdb.dll

 

你可能感兴趣的:(Microsoft,matlab,语言,破解,编译器,plot)