永利最大(官方)网站

Java中如何调用matlab代码

原创|其它|编辑:郝浩|2009-12-22 11:49:58.000|阅读 1005 次

概述:MATLAB的最新版本2006b中新添了一个产品-MATLAB Builder for Java。其实本来Matlab就有Java外部程序接口,不过原来的接口只能在.m文件中调用Java,而无法在Java程序中调用Matlab。

#慧都22周年庆大促·界面/图表报表/文档/IDE/IOT/测试等千款热门软控件火热促销中>>

  MATLAB的最新版本2006b中新添了一个产品-MATLAB Builder for Java。其实本来Matlab就有Java外部程序接口,不过原来的接口只能在.m文件中调用Java,而无法在Java程序中调用Matlab。

  新的 Java Builder为我们在Java程序中调用Matlab丰富的数值计算资源提供了极大的便利。

  与MATLAB对其他程序的外部接口相比,我觉得Java接口在一下几个方面比较有特色:

  (1)在.m文件中可以直接调用Java资源。例如可以调用JDK中的界面元素构建用户界面。

  (2)可以利用Java在网络功能方面的优势,开发基于Web的应用程序。

  1首先你需要一个版本的matlab至少2006版本,看看你的matlab安装文件夹下toolbox中有没有javabuilder这一 项,如果有go to 2, 没有可能是该toolbox没有安装把。推荐一个下载地址,matlab2008

  ,很快,100k/s,用了4-5小时下完

  2 配置java环境, 要装JDK(1.5版本以上,所有java程序的编译和运行都需要安装这个环境)。搞清楚JDK的安装的路径,比如我的是C:\Program Files\Java\jdk1.6.0_03,打开你的dos命令窗口,开始设置。

  2.1键入set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_03

  键入set PATH=%PATH%;C:\Program Files\Java\jdk1.6.0_03

  2.2 检查配置是否成功

  键入 java -version

  应该有

 java version "version_number"
  Java(TM) 2 Runtime Environment, Standard Edition
  (build version_number.build_number
  Java HotSpot(TM) Client VM (build version_number.build_number, mixed mode)
  键入javac -version
  返回 javac version_number

  2.3 最后在matlab的窗口键入 :getenv JAVA_HOME:,应该返回 JDK的路径

  如果以上都没有问题,那么java环境配置就完成了

  3 在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 2001-2006 The MathWorks, Inc.
  y = magic(x);

  注意把这个工程和matlb文件都放在放在matalb的workplace文件夹下,不然会出错。在工程中添加这个matlab,开始编译,得到两个文件夹,找到distrib子文件夹,找到magicsquare.jar文件,到matlab的toolbox找到javabuilder,jar,copy出来这两个jar文件,前一个就是由matlab代码转化得到的java代码,后一个要调用接口。新建个文件夹,新建一个java程序getmagic.java调用matlab转化的类,如下。把两个jar复制到这个文件夹,然后解压,得到两个文件夹,一个层次 com\mathworks\toolbox\javabuilder\,对应 import com.mathworks.toolbox.javabuilder.*;另一个和magicsquare\*对应,

  /* getmagic.java
  * This file is used as an example for the MATLAB
  * Builder for Java Language product.
  *
  * Copyright 2001-2006 The MathWorks, Inc.
  */
  /* Necessary package imports */
  import com.mathworks.toolbox.javabuilder.*;
  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 (args.length == 0)
  {
  System.out.println("Error: must input a positive
  integer");
  return;
  }
  /* Convert and print input value*/
  n = new MWNumericArray(Double.valueOf(args[0]),
  MWClassID.DOUBLE);
  System.out.println("Magic square of order " + n.toString());
  /* Create new magic object */
  theMagic = new magic();
  /* Compute magic square and print result */
  result = theMagic.makesqr(1, n);
  System.out.println(result[0]);
  }
  catch (Exception e)
  {
  System.out.println("Exception: " + e.toString());
  }
  finally
  {
  /* Free native resources */
  MWArray.disposeArray(n);
  MWArray.disposeArray(result);
  if (theMagic != null)
  theMagic.dispose();
  }
  }
  }

  运行以上代码,great,成功。貌似matlab的online help的例子有些问题,路径好像错了,不管了。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@hmdbvip.cn

文章转载自:网络转载

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP
PM娱乐城网络现金网站(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) PM娱乐城最大(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 永利外围最新(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 网络权威朗驰娱乐大全(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 永利真人网上足球(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 利记最火十大网(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) boyu·博鱼权威网络足球(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) PM娱乐城网上足球(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新)