java

位置:IT落伍者 >> java >> 浏览文章

java中调用matlab代码


发布日期:2022年02月16日
 
java中调用matlab代码

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的例子有些问题路径好像错了不管了

               

上一篇:如何计算java对象占用的内存

下一篇:JAVA中定时自动完成任务的实现