java调用matlab绘图
生活随笔
收集整理的這篇文章主要介紹了
java调用matlab绘图
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
環境:
系統:kali linux 2017
java: 1.8
matlab:R2016b
idea:2016
1.編寫matlab腳本:
drawplot.m
%畫圖 自定義函數drawplot 參數 x y function drawplot(x, y) plot(x, y); %%使用matlab函數plot()作圖 grid on %網格顯示 xlabel('X軸值') ylabel('Y軸值') title('Java調用MatLab作圖例子')?
腳本保存到指定文件夾
在matlab命令窗口:
>> deploytool?
選擇Liberary Compiler
TYPE:java package
EXPORTED:選擇drawplot.m
修改類名為:Plotter
點擊package
文件夾下面會多出剛才的工程,里面有我們要要用的jar(xxx.jar)
在idea下新建工程:javaMatlab
libs文件夾下有兩個依賴包:
---xxx.jar
---javabuilder,jar (在matlab安裝目錄\toolbox\javabuilder\jar\jarbuilder.jar)
package com.xh.matlab4java;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 plotdemon.Plotter;/*** Created by root on 8/25/17.*/ public class PlotTest {public static void main(String[] args) {// TODO Auto-generated method stubMWNumericArray 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^2for (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();}} }?
注意:
選擇 Edit Configurations
添加運行環境參數
LD_LIBRARY_PATH=/opt/Matlab/runtime/glnxa64?
否則會報錯:不能鏈接到 libmwmclmcrrt.so.9.1
至此配置完成,運行正常。
轉載于:https://www.cnblogs.com/lanqie/p/7427787.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的java调用matlab绘图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 英雄联盟云顶之弈反甲布隆阵容搭配 英雄资
- 下一篇: 红旗首款紧凑型 SUV HS3 上市,售