matlab语言转换为c语言
‘壹’ 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。
‘贰’ 怎么把matlab程序转成c语言
我负责的告诉你,没办法转成纯c的。如果想脱离matlab环境,需要matcom,其他的则利用mex等就可以了
‘叁’ 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的M文件转换成C语言
MATLAB自带生成C语言的功能,只需要在编辑器功能区选择“应用程序”,找到 MATLAB Coder,打开,按照步骤操作即可,如图所示。
但是它可能有诸多限制,有些内置函数无法生成C语言,所以如果遇到这种情况你可能需要用 C自己实现一些功能。
‘伍’ MATLAB程序如何转成C语言
可以将程序写到embedded
function放到simulink里面利用RTW
workshop就可以生成了
里面可以有矩阵运算matlab基本的函数等,功能还是很丰富的,可以到网上查找相关资料
‘陆’ 如何将matlab程序变成C语言代码
C、C++、JAVA都是完整的通用平台的语言。通俗的说,就是它们可以编写任何程序并可以在大部分硬件系统和操作系统中运行,C++、JAVA都是在C语言基础上发展起来的,在表达形式上三者很相似。区别是,C是面向过程语言,就是说,其编程核心是逻辑流程。C++和Java是面向对象语言,简单的说,是以数据为中心进行编程。这三门语言现在都有强大的生命力,从使用范围上大略可以按照Java——C——C++的顺序排列。特别的,c语言非常适合底层开发,具有独一无二的优势,而且具有基础学习的意义,可以大大地帮助两外两门语言的学习。
VB、QB都是从Basic语言发展起来的。VB是window平台的专属语言,所以适用面窄,也不适合作为入门语言,因为你学不到编程的基本知识和能力,而要花精力去学习windows特有的编程方式和习惯。QB没人用了,死掉的语言。
FOX是一种已经废弃的数据库语言,不用考虑了。
Matlab是使用最广泛的科学计算的软件,在这个软件上用于编写计算程序的语言也叫Matlab。所以它也不是通用编程语言,只适用于科学计算,而且只能用在Matlab软件。初学编程者不用考虑。
学好一门编程语言的方法就一个——大量地编程,书上题目做会之后,尽可能地参与实际的项目,这是最好的锻炼。
9月
‘柒’ 如何把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语言程序
可以用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语言
可以转换成c代码,但是你的matlab代码有一定要求,具体可以参考一下coder命令,