A. 為什麼matlab中沒有編譯器
1. 安裝
單獨安裝、和MATLAB同時安裝。
2. 設置(以vs2005為例)
>> mbuild -setup
Please choose your compiler for building standalone MATLAB applications:
Would you like mbuild to locate installed compilers [y]/n? y
Select a compiler:
[1] Lcc-win32 C 2.4.1 in D:\PROGRA~1\MATLAB\R2010a\sys\lcc
[2] Microsoft Visual C++ 2008 SP1 in D:\Program Files\Microsoft Visual Studio 9.0
[3] Microsoft Visual C++ 2005 SP1 in C:\Program Files\Microsoft Visual Studio 8
[0] None
Compiler: 3
Please verify your choices:
Compiler: Microsoft Visual C++ 2005 SP1
Location: C:\Program Files\Microsoft Visual Studio 8
Are these correct [y]/n?
Trying to update options file: C:\Documents and Settings\Administrator\Application Data\MathWorks\MATLAB\R2010a\compopts.bat
From template: D:\PROGRA~1\MATLAB\R2010a\bin\win32\mbuildopts\msvc80compp.bat
Done . . .
3. 使用
(1)在 MATLAB 環境中使用 mcc 命令;
(2)在系統命令環境中使用 mcc.exe (在Windows上);
(3)在 MATLAB 環境中使用 Deployment Tool。
4. 程序發布
(1)使用 MATLAB 命令 builder;
(2)使用 Deployment Tool 圖形化工具。
一般來說,需要發布的文件有3個:
(1)編譯得到的可執行文件或庫函數;
(2)CTF 文件;
(3)MCRInstaller.zip。
在最終用戶的計算機上,首先需要把MCRInstaller.zip 解壓,並把 MCR 中可執行文件所在目錄添加到系統路徑上,然後就可以使用編譯後的程序了。
B. 關於matlab編譯器
直接用MATLAB自帶的編譯器:
APPS--->Application Compiler--->點擊『add main file』右邊的加號,添加主函數,進行編譯就行了。
註:如果你想把exe拿到沒有MATLAB的機子上運行的話,記得選中『Runtime included in package』(Application Compiler界面里)。在文件夾找到該文件,進行安裝就行了
C. MATLAB R2012b 安裝時出現需要支持的編譯器時怎麼辦
要看你具體的應用。
大部分模塊是不需要使用編譯器的,只有少部分產品可能需要用到編譯器,例如MATLAB Compiler、Stateflow,以及Simulink的加速模擬模式等。
如果你只是使用MATLAB的普通功能,可以不裝編譯器。如果確有需要,可以按照鏈接給出的編譯器列表,選擇安裝其中的一種即可,如VC或者MSC+SDK。
D. 如何使用matlab在網頁中作圖
Matlab的函數繪圖功能應該是所有數值分析軟體中最出色的,在自己的網頁中加入Matlab圖形,不僅可以使自己的網頁顯得很酷很炫,而且可以使自己的網頁非常專業,尤其適合發表論文時作為引用的驗證系統的網站,同時網頁上的Matlab圖形還允許用戶和圖形之間做高效的互動。
本文的基礎建立在你已經知道如何對Matlab庫函數或者是手動編寫的函數打jar包,並在一般java應用程序中調用。本文將主要講解如何部署包含有定製Matlab圖形的網站,所採用的基本工具是Matlab
R2010b(注意,更低版本的Matlab可能不具備打jar包的功能),Tomcat6,其他工具有MyEclipse。本文將盡量以最淺顯易懂的方式介紹在網頁中加入Matlab圖形的方法。
使用java在網頁中加入Matlab圖形有三種方式:
1、使用servlet返回的HTML字元串將Matlab圖形嵌入網頁;
2、直接使用JSP中的WebFigure標簽;
3、使用中間件將整個Matlab圖形嵌入網頁,包括其功能和操作。
本文將只介紹第二種方法。
1 Matlab函數編寫
首先確定返回WebFigure的Matlab函數的基本形式如下:
function [result1 result2] = getfigure(parameter1, parameter2) f = figure('Visible','off'); %建立一個Figure. 生成函數圖形的代碼,插入到f中去; result1 = webfigure(f); %將Figure轉換為WebFigure並返回 close(f); %將原始Figure f關閉end
使用Matlab編譯器將上述函數打成jar包,在編譯之前最好在Matlab窗口中測試一下這個函數,以保證其可以返回期望的結果,為了看到圖形可以將close(f)語句暫時注釋掉。
2 Web工程的配置
2.1 工程結構
基本結構如下:
Webroot
--WEB-INF
web.xml
webfigures.tld
--classes
yourservlet.class
--lib
javabuilder.jar
yourmatlabclass.jar
yourindex.jsp
yourindex.html
對於tomcat來說,直接將此目錄到其webapps目錄下就可以完成部署,但作者還是建議在MyEclipse中將此工程目錄打成war包後,在tomcat的manage窗口中完成部署。
Tomcat只有一個部署文件web.xml,其中需要做一些修改,之後介紹。
Webfigures.tld是顯示matlab圖形必須的文件,建議在matlab安裝文件夾中自己查找,加入到網站目錄樹中。
Classes文件夾中放置的是一些編譯好的文件,如servlet類。這些servlet需要事先編譯,編寫servlet在web application的src文件夾下,注意在工程中包含javabuilder.jar等必須的jar包,打war包時,MyEclipse會自動將編譯好的class文件從src文件夾到classes文件夾。
Lib文件夾可以不用考慮,打war包時,MyEclipse會自動將用戶添加的jar包添加到這個文件夾下。 Web根目錄下放置jsp文件和html文件,注意包含必要的jar包,否則會報錯,但不會影響打war包。
這次使用java搭建網站有一些強烈的感覺,其實用J2EE搭建網站還是非常容易的,只要你遵循J2EE的基本規范就可以了,具體的來說就是遵循上述文件設置規范,以及相應的文件編寫規范。另外,對於相對規模較小的應用,JSP+Servlet是非常快捷且方便的,像JSP,可以直接在tomcat的webapp部署文件夾下,使用文本編輯的方式直接修改,再使用瀏覽器直接進行調試,非常方便且直接。似乎聽有人說現在開發都不再使用Bean了,不知道是不是真的。
2.2 修改部署文件
使用MyEclipse建立一個Web Application工程,修改Webroot目錄下WEB-INF目錄下的web.xml部署文件,在web-app標簽中加入如下代碼:
<servlet> <servlet-name>WebFigures</servlet-name> <servlet-class> com.mathworks.toolbox.javabuilder.webfigures.WebFiguresServlet </servlet-class></servlet><servlet-mapping> <servlet-name>WebFigures</servlet-name> <url-pattern>/WebFigures/*</url-pattern></servlet-mapping> 如果你生成了自己的servlet的話,還需要添加相應的代碼。
3 生成jsp文件
Jsp頭部需要添加的東西:
<%@ taglib prefix="wf" uri="/WEB-INF/webfigures.tld" %>
引用webfigures.tld文件,定義標簽項。 <%@ page import="com.mathworks.toolbox.javabuilder.webfigures.WebFigure" %>
引用WebFigure庫,以及你自己編寫的Matlab類庫,另外引用com.mathworks.toolbox.javabuilder.*也是必須的,因為其中包含一些Error定義以及必要的類和介面的定義。
在body體中加入如下類似的代碼: <% = null; try { myDeployedComponent = new YourComponentClass(); try
{ WebFigurewebFigure =
(WebFigure) (MWJavaObjectRef)myDeployedComponent.getfigure(1)[0]).get();//matlab類的使用就不再說明了,此處調用與在普通java程序中調用matlab類是相同
的 request.getSession().setAttribute("YourFigure",
webFigure); } catch(ClassCastException e) { throw new
Exception ("Issue casting deployed components outputs to WebFigure", e); } } catch (Exception e) { e.printStackTrace(); } finally { myDeployedComponent.dispose(); }%><wf:web-figure name="YourFigure" scope="session"/>
打war包,將上述網站工程部署,恭喜你已經可以看到自己定製的包含Matlab圖形的網頁了。
最後,再談一談我這段時間使用Matlab的感受吧,最直觀的感受就是簡單易用而且強大,看Matlab的幫助文件感覺條理和結構非常清晰,措辭明確且淺顯易懂,非常符合科研人員的一貫作風。
就以webfigure的使用這篇幫助文獻來說吧,聲明了開發一個matlab網站需要哪些人員,每個人員的技能准備要求,別被其中Expert要求所嚇倒,其實matlab並不要求Expert有非常深入的技能,局部基本功就足夠了。文章清晰得列出了開發過程中所可能遇到的方方面面的問題,並分門別類,還給出了具體的例子,
matlab的幫助文件從不故弄玄虛,每一句話都直指核心問題,且淺顯易懂,通俗的說,看過幫助文件的每一句話,你都能具備舉一反三的能力。
E. MATLAB需要支持的編譯器
在MATLAB的Command Window下輸入命令 mbuild –setup,並根據MATLAB的提示選擇合適的編譯器,使用Microsoft Visual C++6.0,進行對C++連接環境的設置。
過程如下:
>> mbuild -setup
按照提示選擇操作,選擇編譯器進行安裝
然後,在MATLAB的Command Window下輸入命令 mex –setup,進行對編譯環境的設置。過程如下:
>> mex -setup
按照提示選擇操作,選擇你所需要的編譯器就可以了。
F. matlab有很多需要用到編譯器嗎
java c都有,m文件是腳本文件是有預編譯器的,最好能matlab擴展編程功能很強大
G. MATLAB 2012a 安裝到最後 說 需要支持的編譯器
這個你不用管,直接過了就行了,如果你以後需要使用什麼編譯器的,比如c編譯器,你可以使用mex -setup命令進行添加。
H. matlab中用什麼實現公式編譯
由於時間倉促,簡單地學習了如何將.m文件打包為.exe文件
首先介紹一下MATLAB編譯器
MATLAB編譯器
功能
1、產生C源碼,並進而生成MEX文件。這種MEX文件的優點是:一,當程序變數為實數,或向量化程度較低,或含有循環結構時,採用該法可提高運行速度;二,與ASCII碼的M文件不同,MEX文件採用二進制代碼生成,能更好地隱藏文件演算法,使之免遭非法修改。
2、產生C或C++源碼,以便與其他C/C++模塊結合行成獨立的外部應用程序。運行所產生的應用程序,無需MATLAB環境的支持,但是往往需要MATLAB提供的C/C++數學庫;如果調用了MATLAB繪圖指令,則還需要MATLAB提供的C/C++圖形庫
3、產生C MEX的S函數,與Simulink配合使用,以提高S-函數的運行速度
4、產生C 共享庫(動態鏈接庫)或C++靜態庫,他們的使用無需MATLAB環境的支撐,但是需要MATLAB的數學庫
局限性
1、無法編譯腳本文件
2、不支持用戶自定義對象
3、不支持eval,input,inline等函數
4、不支持的MATLAB的Java介面
腳本文件改寫為函數文件
M腳本文件不能直接被MATLAB編譯器所編譯,解決方案:先把腳本M文件改寫成函數M文件,然後再對這函數文件進行編譯。
編譯器的配置:
在MATLAB命令窗中運行mex –setup
I. matlab
MATLAB
MATLAB是矩陣實驗室(Matrix Laboratory)之意。除具備卓越的數值計算能力外,它還提供了專業水平的符號計算,文字處理,可視化建模模擬和實時控制等功能。
MATLAB的基本數據單位是矩陣,它的指令表達式與數學,工程中常用的形式十分相似,故用MATLAB來解算問題要比用C,FORTRAN等語言完相同的事情簡捷得多.在新的版本中也加入了對C,FORTRAN,c++,JAVA的支持.可以直接調用.
MATLAB的基礎是矩陣計算,但是由於他的開放性,並且mathwork也吸收了想maple等軟體的優點,使MATLAB成為一個強大的數學軟體
當前流行的MATLAB 6.5/7.0包括擁有數百個內部函數的主包和三十幾種工具包(Toolbox).工具包又可以分為功能性工具包和學科工具包.功能工具包用來擴充MATLAB的符號計算,可視化建模模擬,文字處理及實時控制等功能.學科工具包是專業性比較強的工具包,控制工具包,信號處理工具包,通信工具包等都屬於此類.
開放性使MATLAB廣受用戶歡迎.除內部函數外,所有MATLAB主包文件和各種工具包都是可讀可修改的文件,用戶通過對源程序的修改或加入自己編寫程序構造新的專用工具包.
Matlab的官方網站:http://www.mathworks.com
Matlab的優勢和特點
(1)友好的工作平台和編程環境
MATLAB由一系列工具組成。這些工具方便用戶使用MATLAB的函數和文件,其中許工具採用的是圖形用戶界面。包括MATLAB桌面和命令窗口、歷史命令窗口、編輯器和調試器、路徑搜索和用於用戶瀏覽幫助、工作空間、文件的瀏覽器。隨著MATLAB的商業化以及軟體本身的不斷升級,MATLAB的用戶界面也越來越精緻,更加接近Windows的標准界面,人機交互性更強,操作更簡單。而且新版本的MATLAB提供了完整的聯機查詢、幫助系統,極大的方便了用戶的使用。簡單的編程環境提供了比較完備的調試系統,程序不必經過編譯就可以直接運行,而且能夠及時地報告出現的錯誤及進行出錯原因分析。
(2)簡單易用的程序語言
Matlab一個高級的距陣/陣列語言,它包含控制語句、函數、數據結構、輸入和輸出和面向對象編程特點。用戶可以在命令窗口中將輸入語句與執行命令同步,也可以先編寫好一個較大的復雜的應用程序(M文件)後再一起運行。新版本的MATLAB語言是基於最為流行的C++語言基礎上的,因此語法特徵與C+語言極為相似,而且更加簡單,更加符合科技人員對數字表達式的書寫格式。使之更利於非計算機專業的科技人員使用。而且這種語言可移植性好、可拓展性極強,這也是MATLAB之所以能夠深入到科學研究及工程計算各個領域的重要原因。
(3)強大的科學計算機數據處理能力
MATLAB是一個包含大量計算演算法的集合。其擁有600多個工程中要用到的數學運算函數,可以方便的實現用戶所需的各種計算功能。函數中所使用的演算法都是科研和工程計算中的最新研究成果,而前經過了各種優化和容錯處理。在通常情況下,可以用它來代替底層編程語言,如C和C++ 。在計算要求相同的情況下,使用MATLAB的編程工作量會大大減少。MATLAB的這些函數集包括從最簡單最基本的函數到諸如距陣,特徵向量、快速傅立葉變換的復雜函數。函數所能解決的問題其大致包括矩陣運算和線性方程組的求解、微分方程及偏微分方程的組的求解、符號運算、傅立葉變換和數據的統計分析、工程中的優化問題、稀疏矩陣運算、復數的各種運算、三角函數和其他初等數學運算、多維數組操作以及建模動態模擬等。
(4)出色的圖形處理功能
MATLAB自產生之日起就具有方便的數據可視化功能,以將向量和距陣用圖形表現出來,並且可以對圖形進行標注和列印。高層次的作圖包括二維和三維的可視化、圖象處理、動畫和表達式作圖。可用於科學計算和工程繪圖。新版本的MATLAB對整個圖形處理功能作了很大的改進和完善,使他不僅在一般數據可視化軟體都具有的功能(例如二維曲線和三維曲面的繪制和處理等)方面更加完善,而且對於一些其他軟體所沒有的功能(例如圖形的光照處理、色度處理以及四維數據的表現等),MATLAB同樣表現了出色的處理能力。同時對一些特殊的可視化要求,例如圖形對話等,MATLAB也有相應的功能函數,保證了用戶不同層次的要求。另外新版本的MATLAB還著重在圖形用戶界面(GUI)的製作上作了很大的改善,對這方面有特殊要求的用戶也可以得到滿足。
(5)應用廣泛的模塊集合工具箱
MATLAB對許多專門的領域都開發了功能強大的模塊集和工具箱。一般來說,他們都是由特定領域的專家開發的,用戶可以直接使用工具箱學習、應用和評估不同的方法而不需要自己編寫代碼。目前,MATLAB已經把工具箱延伸到了科學研究和工程應用的諸多領域,諸如數據採集、資料庫介面、概率統計、樣條擬合、優化演算法、偏微分方程求解、神經網路、小波分析、信號處理、圖像處理、系統辨識、控制系統設計、LMI控制、魯棒控制、模型預測、模糊邏輯、金融分析、地圖工具、非線性控制設計、實時快速原型及半物理模擬、嵌入式系統開發、定點模擬、DSP與通訊、電力系統模擬等,都在工具箱(Toolbox)家族中有了自己的一席之地。
(6)實用的程序介面和發布平台
新版本的MATLAB可以利用MATLAB編譯器和C/C++數學庫和圖形庫,將自己的MATLAB程序自動轉換為獨立於MZATLAB運行的C和C++代碼。允許用戶編寫可以和MATLAB進行交互的C或語言程序。另外,MATLAB網頁服務程序還容許在Web應用中使用自己的MATLAB數學和圖形程序。
MATLAB的一個重要特色就是他有一套程序擴展系統和一組稱之為工具箱的特殊應用子程序。工具箱是MATLAB函數的子程序庫,每一個工具箱都是為某一類學科專業和應用而定製的,主要包括信號處理、控制系統、神經網路、模糊邏輯、小波分析和系統模擬等方面的應用。
(7)應用軟體開發(包括用戶界面)
在開發環境中,使用戶更方便地控制多個文件和圖形窗口;在編程方面支持了函數嵌套,有條件中斷等;在圖形化方面,有了更強大的圖形標注和處理功能,包括對性對起連接注釋等;在輸入輸出方面,可以直接向Excel和HDF5。