Matlab---匯出exe
導語
研究如何把一段程式碼打包成EXE的方式輸出,一方面是為了演算法的保密,另一方面也方便在一臺未安裝有matlab的電腦上面使用。事實上python也是有類似的匯出工具的,我們這裡先來談一談如何從matlab裡面匯出
正文
先說說我的環境吧,就win7+matlab2017a,網上說的教程真的都太複雜了,一方面是MCR的配置,另一方面又是GUI的編寫。這裡我們也致力於簡單說明配置,並使用2017a自帶的app:application compiler來實現。
配置
第一步:安裝MCR
MATLAB\R2017a\toolbox\compiler\deploy\win64
在上面這個資料夾中可以找到一個叫做MCRInstaller.exe的程式,雙擊之後安裝到預設位置即可。
第二步:準備m檔案
在matlab命令列中輸入guide,然後選擇default的那個選項,就會出現
這樣子影像,然後你就自己像其中新增一些按鈕呀之類的操作咯~
我們這裡為了方便,就新增一個按鈕,並取名為exit
然後點選儲存即可儲存在matlab當前的資料夾之中。儲存好之後會自動彈出一個EXIT.m的檔案,在其中可以找到我們這個button的動作,因為我們要實現點選這個按鈕之後就關閉該視窗,故我們在
function pushbutton1_Callback(hObject, eventdata, handles)
新增一個動作:
close(gcf)
儲存即可,然後我們的m檔案就算準備完畢了。事實上如果我們執行這段程式碼即可看見
但現在我們要把這個在matlab中執行的工作變成一個exe可以隨時傳送給別人然後開啟執行。
打包成exe
點選matlab上面選項卡中的app,選中application compiler之後就會出現這樣的介面:
然後點選上面的+號,選中我們剛才建立的EXIT.m檔案,然後runtime這個東西(其實我們已經安裝好了,所以選什麼都無所謂吧),最後點選Package就可以對這個m檔案進行打包操作了(一開始是儲存為專案的格式)。
大家稍等一下,然後開啟資料夾,就會看見這樣三個資料夾
然後經過嘗試,我發現,點選testing中的exe可以,點選for_redistribution_files_only中的exe也可以執行,
而且如果點選第一個選項好像是會執行一個runtime的安裝,應該可以方便在新的電腦上安裝之後來執行。
一些選項的辨析
在appliction compiler這個應用中,最下面有一個aditional runtime settings
再其中有一個do not display“`
我們將它前面的√去掉,然後我寫了一個一個非常簡單的:
pi
我們知道如果直接在matlab裡面執行會直接輸出3.1416
那麼現在我們看看能不能把這個東西給打包,同樣是和之前類似的操作,我們最後得到了3資料夾,開啟其中testing的資料夾中的exe檔案:
哇,這的可以這樣輸出欸,但是遺憾的是,它自動輸出一會兒之後就自動退出了。有沒有辦法,可以讓命令視窗不自動退出呢?emmm這個就等大家自己去探索吧~
相關文章
- QT5.12 匯出exe依賴的dllQT
- exchange合併工具之exmerge.exe匯出郵件失敗!
- 【匯出匯入】匯出匯入 大物件物件
- 【匯出匯入】% 在匯入匯出中的應用。
- Activity 流程模型匯入匯出-activity流程模型匯入匯出模型
- js匯出EXCELjs匯出EXCELJSExcel
- Mysql匯入&匯出MySql
- Mysql匯入匯出MySql
- doris匯入匯出
- java匯出Excel定義匯出模板JavaExcel
- Excel模板匯出之動態匯出Excel
- 【匯入匯出】sqlldr 匯入案例SQL
- Vue框架下實現匯入匯出Excel、匯出PDFVue框架Excel
- vue excel匯入匯出VueExcel
- navlicat 匯入匯出SQLSQL
- mysql 命令匯入匯出MySql
- BCP匯入匯出MsSqlSQL
- mysql匯入匯出慢MySql
- mysql 匯入、匯出命令MySql
- Oracle增量匯入匯出Oracle
- MATLAB 封裝釋出exeMatlab封裝
- Oracle資料庫匯入匯出。imp匯入命令和exp匯出命令Oracle資料庫
- 【匯入匯出】執行匯入,匯出時如何以as sysdba 身份連線。
- 前端匯出前端
- sql匯出SQL
- 匯出excelExcel
- EasyExcel 匯出Excel
- itextpdf匯出
- Angular Excel 匯入與匯出AngularExcel
- 資料泵匯出匯入
- Oracle 資料匯入匯出Oracle
- mysql資料匯入匯出MySql
- mysql資料匯出匯入MySql
- db2匯入匯出DB2
- oracle排除表匯入匯出Oracle
- Oracle資料匯入匯出Oracle
- 【docker】docker映象匯出匯入Docker
- .net6 匯入匯出