matlab转换成c语言
Ⅰ 如何把matlab转化成c语言
matlab 主要使用矩阵,变量是矩阵,运算是矩阵。即使是C语言中的一个简单变量,matlab也要视它为矩阵。
C语言程序放入matlab使用:
(1)必须改写main(){},把main(){},变成 matlab 入口函数 mexFunction(){},
(2)其它功能性函数/子程序不需变化。
(3)加头文件 #include "mex.h"
你需要学习一下mexFunction(){} 如何书写,参数意义等。这里就不费笔墨了。
入口函数样子:
void mexFunction(int nlhs,mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
//一般变量声明
//检查输入输出参数
//为输出参数创建矩阵,输出指针指向它
//输入指针输出指针赋值
//调用功能性函数/子程序
}
编译:
mex my_program.c
Ⅱ 请问有谁能把这个matlab系统转化为c语言程序万分感谢!
Simulink模型可以借助于MATLAB产品家族的一些模块将其直接转换为C语言代码,但不同版本的模块名和调用方式有些差别。
早期的名称叫Real-time Workshop(简称RTW),如下图所示:
代码生成还涉及到很多具体的设置,而所生成的代码要进一步利用也需要花一些时间去掌握,这些都不是几句话能说清楚的。楼主不妨自己先试试,遇到问题再问吧。
另一种思路是,把模型对应的微分方程写出来,然后自己使用C语言直接编码,但从算法的可靠性等方面是不容易达到Simulink生成代码的水平的。
Ⅲ matlab语言 转成 c语言
function tiao_shu_feng_shan()
clear
speed = 100;
t = 0;
Y_a = 4;Y_b = 4;Y_c = 4;
y0 = figure('menubar','none');
axis equal;axis off
axis([-6 6 -10 6])
title('调速电风扇','fontsize',15);
grid off;
[x1,y1,z1]=sphere(30); %产生球体坐标
x=5*x1;y=5*y1;z=5*z1;
shading interp;
hold on;
mesh(x,y,z),colormap(hot); %画风扇框架
hold on;
hidden off;
hold on;
fill([-3,-1,1,3],[-8.5,-5,-5,-8.5],[0.5,0.5,0.5]); %画一个多边形
text(-1.7,-7.5,'星夜回缘 ','color','k','fontsize',15); %多边形里的文字
hold on
ax = Y_a * cos(2 * pi * t);ay = Y_a * sin(2 * pi * t); %计算初始三个叶片的横坐标和纵坐标
bx = Y_b * cos(2 * pi * t - 2 * pi/3);by = Y_b * sin(2 * pi * t - 2 * pi/3);
cx = Y_c * cos(2 * pi * t + 2 * pi/3);cy = Y_c * sin(2 * pi * t + 2 * pi/3);
y_line_a = line([0 ax],[0 ay],'EraseMode','xor','Color','r','linestyle','-','linewidth',20); %画出三个叶片
y_line_b = line([0 bx],[0 by],'EraseMode','xor','Color','b','linestyle','-','linewidth',20);
y_line_c = line([0 cx],[0 cy],'EraseMode','xor','Color','g','linestyle','-','linewidth',20);
k=1;
%b1为停止按钮
b1=uicontrol('parent',y0,...
'units','points',...
'tag','b2',...
'style','pushbutton',...
'string','停止',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[280 10 50 20],...
'callback','k=0;');
%b2为关闭按钮
b2=uicontrol('parent',y0,...
'units','points',...
'tag','b3',...
'style','pushbutton',...
'string','关闭',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[350 10 50 20],...
'callback',[...
'k=1;,',...
'close']);
%s1为调速框条
s1=uicontrol('parent',y0,...
'units','points',...
'tag','s1',...
'style','slider',...
'value',1*speed,...
'max',100,...
'min',30,...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[30 10 190 20],...
'callback',[...
'm=get(gcbo,''value'');,',...
'speed = m/1;']);
%t1为上面的文字说明
% t1=uicontrol('parent',y0,...
% 'units','points',...
% 'tag','t',...
% 'style','text',...
% 'fontsize',15,...
% 'string','风速 请点击滑动条空白处',...
% 'backgroundcolor',[0.75 0.75 0.75],...
% 'position',[30 30 190 20]);
while 1 %让风扇转起来的循环
if k==0
break
end
t = t + 1/speed;
ax = Y_a * cos(2 * pi * t);ay = Y_a * sin(2 * pi * t);
bx = Y_b * cos(2 * pi * t - 2 * pi/3);by = Y_b * sin(2 * pi * t - 2 * pi/3);
cx = Y_c * cos(2 * pi * t + 2 * pi/3);cy = Y_c * sin(2 * pi * t + 2 * pi/3);
drawnow;
set(y_line_a,'XData',[0 ax],'YData',[0 ay]);
set(y_line_b,'XData',[0 bx],'YData',[0 by]);
set(y_line_c,'XData',[0 cx],'YData',[0 cy]);
end
然后使用MATLAB的Deployment Tool转换成c代码;
Ⅳ 怎样把matlab程序转化成C语言程序
可以用MATLAB的C++编译器生成转换m语言为C语言,首先得安装编译器,然后用下面语句来转换mcc -m yourfile.m -c
Ⅳ matlab转变c语言
嵌入式MATLAB可从MATLAB程序生成可嵌入C代码
The MathWorks日前推出了嵌入式MATLAB――业界领先的MATLAB科学计算语言的子集。嵌入式MATLAB子集使MATLAB用户能够从MATLAB程序中生成高效、可嵌入C代码,从而避免了常见的、耗时的和易出错的用C代码重写MATLAB算法的进程。
嵌入式MATLAB子集包括了众多的MATLAB功能,有270多个MATLAB运算符和函数以及90多个定点工具箱(Fixed-Point Toolbox)函数。嵌入式MATLAB支持许多高级MATLAB语言功能,如多维阵列、实数和复数、结构、流程控制和下标运算。
转换为C代码由Real-Time Workshop 7执行,其是广泛用于嵌入式代码生成的MathWorks产品。Real-Time Workshop会自动产生嵌入式C,它在大小、性能和内存使用上可与手工编码相媲美。用户可以直接在MATLAB M文件中调用Real-Time Workshop,或者该文件也可以按名称包括在Simulink模块图中。如果使用了Simulink,也可以使用Simulink HDL coder生成可合成的Verilog和VHDL。在这两种情况下,在数字上,生成的代码与嵌入式MATLAB源代码相当。
早期使用客户反馈,嵌入式MATLAB技术促进了迅速、准确的嵌入式软件开发。GlucoLight公司的首席技术官Matt Schurman说:“通过在我们的设计流程中引入嵌入式MATLAB语言子集和Simulink,我们几乎全部避免了以前从MATLAB到C的手工代码转换过程中遇到的错误。同时我们还缩短了后续产品开发的时间–从设计到实现”。
The MathWorks负责信号处理和通信产品线的市场总监Ken Karnofsky说:“MATLAB在算法开发方面一直为许多电子工程师们所选择,而嵌入式MATLAB提供他们更想要的功能–让他们在嵌入式系统中进行算法开发、设计和实现时一直使用MATLAB”。
可用性
在以下最新版本的MathWorks产品中支持嵌入式MATLAB技术:MATLAB、Simulink、Fixed-Point Toolbox、Stateflow、SimEvents和Simulink HDL Coder。Simulink和Real-Time Workshop是必需的产品。有关嵌入式MATLAB的详情,请访问www.mathworks.com/procts/featured/embeddedmatlab。
Ⅵ MATLAB程序如何转成C语言
可以将程序写到embedded
function放到simulink里面利用RTW
workshop就可以生成了
里面可以有矩阵运算matlab基本的函数等,功能还是很丰富的,可以到网上查找相关资料
Ⅶ 如何将matlab语言转换为c语言
方法如下:
1)matlab要把n++写成n=n+1
2)printf在matlab中相近功能的命令有disp(),!echo,和sprintf(),其中最后一种最接近c中的printf。有关具体用法,你可以在matlab主命令窗口输入:help sprintf 来查阅这个命令的帮助和例子。比如:sprintf('The array is %dx%d.',2,3),其输出是 The array is 2x3
3)头文件的include是不用的,因为matlab的常用库里是包含了这些函数的。顺带一提,matlab里对函数的定义,开头要用function XXX。