日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java中使用MATLAB作图

發布時間:2025/3/21 java 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java中使用MATLAB作图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近做一個項目,需要很多進行很多信號處理——小魏就是學軟件的,對信號處理簡直是個小白,最簡單的實現就是傻瓜似的調用MATLAB的各種工具箱,達到目的就行。

同時,MATLAB是種解釋性語言,執行效率比較低,不適用與通用編程平臺,同時圖形化編程也非常不方面,一舉兩得的是能在其他語言(VC++\Java)程序中調用MATLAB編寫的函數。

好,牛刀小試,嘗試在Java中調用MATLAB!

1)實驗環境

機器中裝有Eclipse和Matlab,并配置好環境變量。

小魏裝的是Eclipse 3.7.1 和Matlab7.11.0 (R2010b)。當然要裝有JDK,Eclipse的配置不多說了,網上有許多,至于Matlab,最好在classpath中添加:

%matlabInstallRoot%\R2010b\toolbox\javabuilder\jar\javabuilder.jar

這里說“最好”,是因為不添加,只在項目中引用,貌似也是可行的。

P.S. 如果是VC++中調用MATLAB,一定要在path中添加:

%matlabInstallRoot%\R2010b\bin\win32

2)將Matlab的m文件包裝成java類

??這里我們使用Matlab自帶的例子,在路徑

%matlabInstallRoot%\R2010b\toolbox\javabuilder\Examples\PlotExample

下,此處是m文件:

[plain]?view plaincopy
  • function?drawplot(x,?y)??
  • plot(x,?y);?%%使用matlab函數plot()作圖??

  • 在MATLAB中Command窗口中輸入deploytool調出部署工具DeploymentTool。新建一個工程,輸入工程名plotdemo.prj,選擇路徑,并選擇Target為 Java Package。


    在MATLAB右側會出現我們新建的工程。

    將剛剛編寫的m文件直接拖拽進去,并重命名類名為plotter,點擊Build編譯:


    完成之后(過程有點長~)就會在我們選擇的路徑下看到 plotdemo的文件夾。

    3)在java工程中調用matlab生成的類

    新建工程TryMatlabPlot,并右鍵在Build Path中引用相關的包

    %matlabInstallRoot%\R2010b\toolbox\javabuilder\jar\jarbuilder.jar

    以及剛剛生成的plotdemo\distrib\plotdemo.jar


    Java類文件的代碼為:

    [java]?view plaincopy
  • package?lwei.test.matlab;??
  • ??
  • import?com.mathworks.toolbox.javabuilder.*;??
  • import?plotdemo.*;??
  • ??
  • /***?
  • ?*?通過調用matlab中的函數在窗口中作圖?
  • ?*?@Author:?lwei?
  • ?*/??
  • class?createplot??
  • {??
  • ???public?static?void?main(String[]?args)??
  • ???{??
  • ??????MWNumericArray?x?=?null;???//存放x值的數組??
  • ??????MWNumericArray?y?=?null;????//存放y值的數組??
  • ??????plotter?thePlot?=?null;????//plotter類的實例??
  • ??????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();??
  • ??????}??
  • ???}??
  • }??
  • 運行程序,結果如圖:


    源碼下載鏈接:http://download.csdn.net/detail/xiaowei_cqu/3877268


    (轉載請注明作者和出處:http://blog.csdn.net/xiaowei_cqu?未經允許請勿用于商業用途)

    總結

    以上是生活随笔為你收集整理的Java中使用MATLAB作图的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。