java調用matlab繪圖


一 注意事項

1: MatLab的版本必須是2006b+(包括2006b或更高版本),因為只有在這些版本中才有MATLAB Builder for Java(也叫Java Builder)。

2: 運行機器上必須裝有JRE 並且版本要和MatLab自帶的jre 大版本保持一致(位數也要保持一致)(大版本一致既可,比如同是1.6,或者1.7既可)

   查看MatLab 自帶JRE版本位數方法:在MatLab中Command Windows中輸入 【version -java】 命令查看。如圖所示:

這里是 1.6.0_17-b04 版本的JRE 並且為64位的。(注意:這里之所以是64位的,取決於您當初下載的MatLab安裝包的位數。

3:驗證系統jdk jre,系統首先裝有Java環境(不在敘述)。 驗證jdk,jre版本位數。打開cmd 輸入命令 【java -version】 

二 調用基本步驟

1:打開MatLab,HOME -》 新建腳本 打開Editor窗口。腳本內容如下:

復制代碼
%畫圖 自定義函數drawplot 參數 x y  
function drawplot(x, y)    
plot(x, y); %%使用matlab函數plot()作圖    
grid on %網格顯示  
xlabel('X軸值')  
ylabel('Y軸值')  
title('Java調用MatLab作圖例子') 
復制代碼

2:在計算機某個目錄建個存放MatLab腳本及其后期編譯出的java文件。例如:桌面\mjTest。保存腳本到此文件夾下。保存后,

在mjTest文件夾下多了一個drawplot.m文件。

3:在MatLab下Command Window下輸入 【deploytool】 命令,打開部署工具Deployment Tool。新建一個工程demo.prj,設置路徑為mjTest

既可,類型選擇Java Package 點擊確定。這時MatLab右側自動打開了java部署窗口。

  

4: 選擇Liberary Compiler

  TYPE: java package

  EXPORTED: 選擇drawplot.m

  修改類名為:Plotter

  點擊 package

  文件夾下面會多出剛才的工程,里面有我們要要用的jar(xxx.jar)

  

   

5: 新建工程並導包 

  在idea下新建工程:javaMatlab

  libs文件夾下有兩個依賴包:

    ---xxx.jar

    ---javabuilder,jar (在matlab安裝目錄\toolbox\javabuilder\jar\jarbuilder.jar)

  

6: 新建ConnectMatLabTest.java:

復制代碼
    package com.xiami.test;  
      
    import com.mathworks.toolbox.javabuilder.MWArray;  
    import com.mathworks.toolbox.javabuilder.MWClassID;  
    import com.mathworks.toolbox.javabuilder.MWComplexity;  
    import com.mathworks.toolbox.javabuilder.MWNumericArray;  
      
    import demo.plotter;  
      
    public class ConnectMatLabTest {  
      
        /**  
         * @param args  
         */  
        public static void main(String[] args) {  
            // TODO Auto-generated method stub  
            MWNumericArray x = null; // 存放x值的數組  
            MWNumericArray y = null; // 存放y值的數組  
            plotter thePlot = null; // plotter類的實例(在MatLab編譯時,新建的類)  
            int n = 20; // 作圖點數  
      
            try {  
                // 分配x、y的值  
                int[] dims = { 1, n };  
                x = MWNumericArray.newInstance(dims, MWClassID.DOUBLE,  
                        MWComplexity.REAL);  
                y = MWNumericArray.newInstance(dims, MWClassID.DOUBLE,  
                        MWComplexity.REAL);  
      
                // 定義 y = x^2  
                for (int i = 1; i <= n; i++) {  
                    x.set(i, i);  
                    y.set(i, i * i);  
                }  
      
                // 初始化plotter的對象  
                thePlot = new plotter();  
      
                // 作圖  
                thePlot.drawplot(x, y);  
                thePlot.waitForFigures();  
            }  
      
            catch (Exception e) {  
                System.out.println("Exception: " + e.toString());  
            }  
      
            finally {  
                // 釋放本地資源  
                MWArray.disposeArray(x);  
                MWArray.disposeArray(y);  
                if (thePlot != null)  
                    thePlot.dispose();  
            }  
        }  
      
    }  
復制代碼

 

運行此類既可看到效果(Run -》 javaapplication),如下圖所示:

 

原文:https://www.cnblogs.com/welhzh/p/5782912.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM