matlab代码移植C语言
介绍一下将matlab代码移植成C语言的过程。利用matlab中自带的matlab转C/C++的工具,以一个具体的实例讲解具体的步骤,以及对过程中可能会出现的问题提供了解决方案。
目录
一、matlab移植C语言步骤
1、将Matlab代码的输入输出函数删除
2、将matlab代码封装为一个函数
3、创建一个函数,说明函数输入参数的类型
4、使用matlab自带工具matlab coder进行转换
二、将得到的文件放入C工程内,得到可执行文件
1、如何将产生的多个.c.h文件组成一个工程
2、其他问题
一、matlab移植C语言步骤
以下步骤参考文章,matlab代码转c/c++详细教程 - 知乎 (zhihu.com)
1、将Matlab代码的输入输出函数删除
即将a=input(a)语句删除,是因为我们将在第二步中将matlab代码封装为一个函数,对于函数来讲它的输入输出可在函数的输入输出变量处定义。
2、将matlab代码封装为一个函数
将原始代码中输入输出语句分别放在函数定义语句中的inputArg1、outputArg1处,输入作为函数的入口参数,输出作为返回值。多个输入输出变量之间用逗号隔开。如下图所示。
function [outputArg1,outputArg2] = untitled(inputArg1,inputArg2)
%UNTITLED 此处显示有关此函数的摘要
% 此处显示详细说明此处写入你的代码(删除输入输出语句之后)无论代码多长多复杂皆放到此处
end
示例如下
-原始代码
%matlab 转 C示例程序a=input('a'); %输入函数,封装函数时需要删除
b=input('b'); %输入函数,封装函数时需要删除
c=a.*b;
d=fft(c);
plot(d);
-封装代码
%matlab 转 C示例程序
function [d]=example(a,b)c=a.*b;
d=fft(c);
plot(d);end
3、创建一个函数,说明函数输入参数的类型
此处命名为enter.m
clear all;
clc;
close all;%下面是输入参数的样例
a = [0.1 0.2 0.3 0.4];
b = [0.1 0.2 0.3 0.4];
%上面是输入参数的样例
%下面是函数的调用
[d]=example(a,b);
4、使用matlab自带工具matlab coder进行转换
-找到APP
-选择Matlab coder
-打开我们用函数封装的代码
-Next
-选择第三步编写的文件
-继续next
-检查一下
-此处没有发现错误,如果发现错误,根据提示删除一些C中无法表示的语句。继续next
上图红色方框中就是产生的所有的.c.h等文件,可以看到有6个.c文件,8个.h文件。到此处已经将matlab代码转化为C语言。接下来需要将这些文件放到同一个工程中。
二、将得到的文件放入C工程内,得到可执行文件
1、如何将产生的多个.c.h文件组成一个工程
使用visual c++简单示范:
(1)新建一个空工程,此时文件夹内没有文件
(2)将第一部分matlab coder产生的.c.h文件分别添加到source File 和Header File中,不要忘记main.h、main,c
(3)进行编译和连接
连接过程但可能会出现错误
此部分参考博文:(2条消息) 处理Matlab Coder之后, Compiler can't find "tmwtypes.h"问题_猫猫玩机器学习的博客-CSDN博客_tmwtypes.h
这是因为这个头文件不是我们转换之后生成的,而是在matlab安装后的路径下,具体在 extern\include\ 文件夹下。但按照博主的方法把这个复制到你工程文件的头文件夹下,并未解决错误。最后解决方法是在包括头文件的时候加入头文件的绝对路径,即将tmwtype.h所在位置加到头文件名字前面。
//#include "tmwtypes.h" //修改前
#include "D:\\program Files\\MATLAB2020b\\extern\\include\\tmwtypes.h" //修改后
2、其他问题
若有同学的visual C++不能完成文件添加或者打开文件的功能,一使用就会闪退的话,参考这个博文的解决方法
(2条消息) Visual C++6.0 打开文件闪退崩溃解决方案_Shelden_的博客-CSDN博客
matlab代码移植C语言相关推荐
- 如何将matlab代码转为C语言(2)--在C++中调用matlab的函数
如何将matlab代码转为C语言(2)–在C++中调用matlab的函数 在上一条博文中提供了一种直接在matlab操作中的方法,下面提供一种新的调用方法,即在C++中调用matlab中的dll文件. ...
- 狄利克雷分布的matlab代码实现和R语言函数调用
主要参考的是:https://www.douban.com/note/45584915/ 和 http://www.biostatistic.net/thread-33740-1-1.html 最近需 ...
- 变步长龙格库塔法matlab代码,matlab 龙格库塔法 变步长龙格库塔法.doc
河北科技大学硕士学位研究生 2012--2013学年第二学期 <Matlab语言及应用>结课论文 学 院: 信息科学与工程学院 专 业: 电路与系统 姓 名: 张利超 学 号: S2012 ...
- python叫什么语言-Python代码是什么语言
Python代码是一种计算机程序设计语言,是一种动态的.面向对象的脚本语言,最初是用来编写自动化脚本的,随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项目的开发. Python代码是 ...
- 让书写的Matlab代码运行更快 Recipes for Faster Matlab Code
Matlab 在 Research 中用得非常多,确实也是非常方便实用,只是有一个问题就是写 Matlab 代码的时候经常需要用一些比较奇怪独特的方式来思考和处理问题,否则写出来的代码虽然同样能工作, ...
- matlab的灰色关联,灰色关联度Matlab代码
load x.txt %把原始数据存放在纯文本文件x.txt中,其中把数据的"替换替换成. for i=1:40 x(i,:)=x(i,:)/x(i,1); %标准化数据 end data= ...
- 基于MPI的H.264并行编码代码移植与优化
2010 03 25 基于MPI的H.264并行编码代码移植与优化 范 文 洛阳理工学院计算机信息工程系 洛阳 471023 摘 要 H.264获得出色压缩效果和质量的代价是压缩编码算法复杂度的增加. ...
- 现有代码移植到Metro App
现有代码移植到Metro App 一:工程配置 配置WinRT工程时要注意以下几点: 静态库工程General里的"Windows Store App Support"设成true ...
- 历时 7 天,我把一万行 Scala 代码移植到了 Kotlin 上!
[CSDN编者按]去年,Google 宣布 Kotlin 正式成为 Android 官方开发语言,由此引发了迁移 Kotlin 的一股热潮.在本文中,作者分享了他在七天内把代码从 Scala 移植到 ...
最新文章
- linux定时任务简记
- LeetCode 239. Sliding Window Maximum
- 牛客网 在线编程 猫狗收容所
- c语言之动态分配空间
- python 第一天
- c# 后台传到前台乱码_前台提交数据到后台为乱码问题解决方式
- 关于github的一些问题汇总
- 绿坝老板不诚实,蒙骗政府官员
- kali php调试,Msfconsole使用总结
- 贝叶斯分析好坏_交易必读|浅谈贝叶斯分析
- vs2015离线安装QT的vsix工具
- JS反转链表 - I
- java开发微信公众号入门指引,jsp(java)开发微信公众平台入门
- 联想服务器装系统不能加载硬盘,联想电脑重装系统读不出硬盘怎么办
- 标准柯西分布_对柯西分布性质的进一步讨论
- IVX低代码平台——小程序微信红包的应用的做法
- Android如何设置背景图片
- 为任意屏幕尺寸构建 Android 界面
- 索引的使用以及常见索引类型,组合索引的具体使用方法。
- vue使用百度搜索接口实现下拉搜索效果