熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

java中調用matlab代碼

2013-11-23 19:12:40  來源: Java核心技術 

  MATLAB的最新版本b中新添了一個產品-MATLAB Builder for Java其實本來Matlab就有Java外部程序接口不過原來的接口只能在m文件中調用Java而無法在Java程序中調用Matlab

  新的 Java Builder為我們在Java程序中調用Matlab豐富的數值計算資源提供了極大的便利

  與MATLAB對其他程序的外部接口相比我覺得Java接口在一下幾個方面比較有特色

  ()在m文件中可以直接調用Java資源例如可以調用JDK中的界面元素構建用戶界面

  ()可以利用Java在網絡功能方面的優勢開發基於Web的應用程序

  首先你需要一個版本的matlab至少版本看看你的matlab安裝文件夾下toolbox中有沒有javabuilder這一 項如果有go to 沒有可能是該toolbox沒有安裝把推薦一個下載地址matlab

  ?SoftID=很快k/s用了小時下完

   配置java環境 要裝JDK(版本以上所有java程序的編譯和運行都需要安裝這個環境)搞清楚JDK的安裝的路徑比如我的是C:\Program Files\Java\jdk_打開你的dos命令窗口開始設置

  鍵入set JAVA_HOME=C:\Program Files\Java\jdk_

  鍵入set PATH=%PATH%;C:\Program Files\Java\jdk_

   檢查配置是否成功

  鍵入 java version

  應該有

  java version version_number

  Java(TM) Runtime Environment Standard Edition

  (build version_numberbuild_number

  Java HotSpot(TM) Client VM (build version_numberbuild_number mixed mode)

  鍵入javac version

  返回 javac version_number

   最後在matlab的窗口鍵入 getenv JAVA_HOME應該返回 JDK的路徑

  如果以上都沒有問題那麼java環境配置就完成了

      在matlab的command窗口輸入 deploytool會在右側彈出一個新窗口(Deployment Tool)也可以 new〉deployment 選擇跳出這個界面以matlab自帶的magicsquare的例子

  新建工程 magicsquare建立一個m文件命名makesqr內容見下面

  function y = makesqr(x)

  %MAKESQR Magic square of size x

  %   Y = MAKESQR(X) returns a magic square of size x

  %   This file is used as an example for the MATLAB

  %   Builder for Java Language product

  %   Copyright The MathWorks Inc

  y = magic(x);

  注意把這個工程和matlb文件都放在放在matalb的workplace文件夾下不然會出錯在工程中添加這個matlab開始編譯得到兩個文件夾找到distrib子文件夾找到magicsquarejar文件到matlab的toolbox找到javabuilderjarcopy出來這兩個jar文件前一個就是由matlab代碼轉化得到的java代碼後一個要調用接口新建個文件夾新建一個java程序getmagicjava調用matlab轉化的類如下把兩個jar復制到這個文件夾然後解壓得到兩個文件夾一個層次 com\mathworks\toolbox\javabuilder\對應 import commathworkstoolboxjavabuilder*;另一個和magicsquare\*對應

  /* getmagicjava

  * This file is used as an example for the MATLAB

  * Builder for Java Language product

  *

  * Copyright The MathWorks Inc

  */

  /* Necessary package imports */

  import commathworkstoolboxjavabuilder*;

  import magicsquare*;

  /*

  * getmagic class computes a magic square of order N The

  * positive integer N is passed on the command line

  */

  class getmagic

  {

  public static void main(String[] args)

  {

  MWNumericArray n = null;   /* Stores input value */

  Object[] result = null;    /* Stores the result */

  magic theMagic = null;     /* Stores magic class instance */

  try

  {

  /* If no input exit */

  if (argslength == )

  {

  Systemoutprintln(Error: must input a positive

  integer);

  return;

  }

  /* Convert and print input value*/

  n = new MWNumericArray(DoublevalueOf(args[])

  MWClassIDDOUBLE);

  Systemoutprintln(Magic square of order + ntoString());

  /* Create new magic object */

  theMagic = new magic();

  /* Compute magic square and print result */

  result = theMagicmakesqr( n);

  Systemoutprintln(result[]);

  }

  catch (Exception e)

  {

  Systemoutprintln(Exception: + etoString());

  }

  finally

  {

  /* Free native resources */

  MWArraydisposeArray(n);

  MWArraydisposeArray(result);

  if (theMagic != null)

  theMagicdispose();

  }

  }

  }

  運行以上代碼great成功貌似matlab的online help的例子有些問題路徑好像錯了不管了


From:http://tw.wingwit.com/Article/program/Java/hx/201311/26451.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.