matlab語言轉化為c語言
A. 如何把MATLAB的M文件轉換成c語言
MATLAB自帶生成C語言的功能,只需要在編輯器功能區選擇「應用程序」,找到 MATLAB Coder,打開,按照步驟操作即可,如圖所示。
但是它可能有諸多限制,有些內置函數無法生成C語言,所以如果遇到這種情況你可能需要用 C自己實現一些功能。
B. 怎樣將寫好的一段matlab程序轉換成C語言
記得matlab好像有直接轉c的,網上搜索下吧,還有就是matlab的語言其實與c也差不多,如果你沒有用他的那些個matlab自己的函數,很容易就翻譯成c的
C. 怎樣把matlab程序轉化成C語言程序
可以用MATLAB的C++編譯器生成轉換m語言為C語言,首先得安裝編譯器,然後用下面語句來轉換mcc -m yourfile.m -c
D. 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代碼;
E. 怎麼把matlab程序轉成c語言
我負責的告訴你,沒辦法轉成純c的。如果想脫離matlab環境,需要matcom,其他的則利用mex等就可以了
F. matlab中的程序能不能轉換成c語言
可以轉換成c代碼,但是你的matlab代碼有一定要求,具體可以參考一下coder命令,
G. 如何把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
H. 請問有誰能把這個matlab系統轉化為c語言程序萬分感謝!
Simulink模型可以藉助於MATLAB產品家族的一些模塊將其直接轉換為C語言代碼,但不同版本的模塊名和調用方式有些差別。
早期的名稱叫Real-time Workshop(簡稱RTW),如下圖所示:
代碼生成還涉及到很多具體的設置,而所生成的代碼要進一步利用也需要花一些時間去掌握,這些都不是幾句話能說清楚的。樓主不妨自己先試試,遇到問題再問吧。
另一種思路是,把模型對應的微分方程寫出來,然後自己使用C語言直接編碼,但從演算法的可靠性等方面是不容易達到Simulink生成代碼的水平的。