加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

将Matlab程序转变为C语言[转]

(2016-05-27 19:11:33)
标签:

matlab

c语言

分类: 代码天地

Matlab程序转变为C语言

环境:

Matlab 2012B

VC 2012

Step1

编写简单的程序,比如

function y=test_add(x1,x2)

    y=x1+x2;

end

将Matlab程序转变为C语言[转]


Step2
将Matlab程序转变为C语言[转]


APPS中找到MATALB Coder
将Matlab程序转变为C语言[转]


将Matlab程序转变为C语言[转]


点击 Add files

将Matlab程序转变为C语言[转]



点击Click to define 这里假定x1x2是(infinf)的二维矩阵


将Matlab程序转变为C语言[转]


build处选择动态连接库

将Matlab程序转变为C语言[转]



点击Build,开始编译


将Matlab程序转变为C语言[转]



将生成的所有文件拷贝到VC工程目录下(如何建立VC工程这里就不提了)


将Matlab程序转变为C语言[转]





建立一个main函数

#include

#include

int main(int argc,char *argv[]){

    system("pause");

return 0;

}

将Matlab程序转变为C语言[转]



添加

头文件

extern "C"{

    #include "test_add_emxAPI.h"

    #include "test_add.h"

}

将Matlab程序转变为C语言[转]



 




创立并定义x1x2y

#include

#include

extern "C"{

    #include "test_add_emxAPI.h"

    #include "test_add.h"

}

int main(int argc,char *argv[]){

    emxArray_real_T * x1=emxCreate_real_T(9,9);

    emxArray_real_T * x2=emxCreate_real_T(9,9);

    emxArray_real_T * y=emxCreate_real_T(1,1);

    for(int Ii=0;Ii<(x1->size[0]*x1->size[1]);Ii++){

        x1->data[Ii]= static_cast<</span>double>(Ii);

        x2->data[Ii]= static_cast<</span>double>(Ii)*2.0;

    }

    system("pause");

return 0;

}

最后计算并验证结果

#include

#include

extern "C"{

    #include "test_add_emxAPI.h"

    #include "test_add.h"

}

int main(int argc,char *argv[]){

    emxArray_real_T * x1=emxCreate_real_T(9,9);

    emxArray_real_T * x2=emxCreate_real_T(9,9);

    emxArray_real_T * y=emxCreate_real_T(1,1);

    for(int Ii=0;Ii<(x1->size[0]*x1->size[1]);Ii++){

        x1->data[Ii]= static_cast<</span>double>(Ii);

        x2->data[Ii]= static_cast<</span>double>(Ii)*2.0;

    }

    test_add(x1, x2, y);

    for(int Ii=0;Ii<(y->size[0]*y->size[1]);Ii++){

        std::cout<< y->data[Ii] <<std::endl;

    }

   

    system("pause");

return 0;

}

将Matlab程序转变为C语言[转]

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有