matlab編譯m文件
① matlab中的多個m文件怎麼轉化成exe文件
+文件。
命令的格式為:
mcc[-option]fun[fun2...][mexfile1...][mlifile...]
此函數的作用是將matlab程序fun.m轉化為c程序fun.c或者c++程序fun.cpp
轉化後的文件默認在當前目錄中。
若M文件多於一個,那麼每個文件對應轉化相應的c和c++文件
若源文件包含c文件,則將它們同新生成的c文件一起編譯。
一些有用的option參數解釋如下:
————————————————————————————————————
c 轉化為c語言文件但是不生成mex文件或者獨立應用程序
d<directory> 指定生成的文件目錄
G/g 進入調試狀態
h 編譯幫助函數,所以的m文件都將編譯到mex文件或者獨立應用程序
L《option》 指定目標語言為option,其中c,cpp,p分別代表c語言,c++,matlab語言
m 指定創建獨立c語言應用程序的宏,作用等於『-t-W main -L C-h-T link:exe libmmdile.mlib』
M"<string>" 向MBLID或者mex教本傳遞string中包含的信息
o<outputfilename> 指定輸出文件名
O<optimization> 指定優化參數
p 指定創建獨立c++語言應用程序的宏 作用等於-t-W main -L Cpp-h-T link:exe libmmdile.mlib』
v 詳細顯示編譯步驟
x 指定創建獨立mex文件的宏,作用等於-t-W main -L C-T link:exe libmmdile.mlib』
S 轉化為simuink的s函數
————————————————————————————————————
————————————————————————————————————
eg
現有m文件main.m mrank.m,主函數main中調用了子函數mrank
main.m
function main
r=mrank(5)
mrank.m
function r=mrank(n)
r=zeros(n,1);
for k=1:n
r(k)=rank(magic(k));
end
在matlab環境下執行主程序可以看到結果
》》main
r=
1
2
3
3
5
現在要把他們轉化為c和cpp程序
在matlab工作窗口中輸入下面命令
》》mcc-mc main mrank
可以得到下面個文件:
main.c
main.h
main-main.c
mrank.c
mrank.h
在matlab中輸入下面命令
mcc -lcpp main mrank
可以得到下面5個文件
main.cpp
main.hpp
main-main.cpp
mrank.cpp
mrank.hpp
有了這些程序以後,就可以在其他c,c++程序中方便調用了
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
創建獨立可執行程序
方法1:編譯m文件為可執行程序
mcc -m main mrank
or
mcc -p main mrank
方法2:將編譯的c c++轉化為可執行程序
mbuild main.c main_main.c mrank.c
or
mbuild main.cpp main_main.cpp mrank.cpp
② matlab中.m文件怎樣進行編譯
直接運行.m文件,如果有錯,會在command window 里進行提示的。再點擊錯誤處就會跳到相應的錯誤行。