`
xiaolongfeixiang
  • 浏览: 236808 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Java调用Matlab方法的三种方式

 
阅读更多

 问题引出:

 

在Java中调用Matlab的方法时,有三种方式。大致都有2个参数,第一个参数是定义输出结果,第二个参数为输入参数。

 

方式一:functionName(int arg0, Object... agr1): Object[] 

 

方式二:functionName(List arg0, List agr1): void

 

方式三:functionName(Object[] arg0, Object[] agr1): void

 

结论:

 

三种方式中,方式一最常用;个人推荐方式三,因为其更简洁、代码可读性更强;方式二则有点绕。

 

案例解释:

 

下面以Matlab JA Builder中的MagicSquare中的案例来解释说明。

 

方式一:functionName(int arg0, Object... agr1): Object[] 

 

// 定义输出结果
Object[] results = null;
Magic magic = new Magic();

// '2' 标识了要得到2个输出结果,最后results在调用了方法后,变成results=new Object[2];
// '5' 表示输入的参数是数字‘5’
results = magic.makesqr(2, 5);
// 输出第一个返回内容
System.out.println(results[0]);
// 输出第二个返回内容
System.out.println(results[1]);

 

方式二:functionName(List arg0, List agr1): void

 

// 定义结果List
List<Object> results = new ArrayList<Object>(2);
// 定义参数List
List<Object> inputs = new ArrayList<Object>(1);

Magic magic = null;

magic = new Magic();
// 注意:结果List要预先加入内容,Null即可
results.add(null);
results.add(null);
// 输入的参数
inputs.add(5);
// 调用方法
magic.makesqr(results, inputs);
// 显示结果
System.out.println(results.get(0));
System.out.println(results.get(1));

 

方式三:functionName(Object[] arg0, Object[] agr1): void

 

// 注意:定义输出结果的时候,要定义数组大小
Object[] results = new Object[2];
Magic magic = null;
magic = new Magic();

// 这种方式,第二参数必须为数组,而不能为可变数组
Object[] inputs = new Object[]{5};
magic.makesqr(results, inputs);
// 输出第一个返回内容
System.out.println(results[0]);
// 输出第二个返回内容
System.out.println(results[1]);

 

最后附上完整的代码

 

import makesquare.Magic;

import com.mathworks.toolbox.javabuilder.MWArray;
import com.mathworks.toolbox.javabuilder.MWException;

public class MagicSquare3 {

	public static void main(String[] args) {

		Object[] results = new Object[2];

		Magic magic = null;

		try {
			magic = new Magic();

			// 这种方式,第二参数必须为数组,而不能为可变数组
			Object[] inputs = new Object[]{5};
			magic.makesqr(results, inputs);
			// 输出第一个返回内容
			System.out.println(results[0]);
			// 输出第二个返回内容
			System.out.println(results[1]);
		} catch (MWException e) {
			e.printStackTrace();
		} finally {
			MWArray.disposeArray(results);
			if (magic != null) {
				magic.dispose();
			}
			magic = null;
		}

	}
}

  

分享到:
评论

相关推荐

    一种Java调用Matlab的方法简介.pdf

    Java与Matlab的交互是数据处理和分析领域中经常遇到的需求,特别是对于那些熟悉Java编程但需要使用Matlab强大数学和图形处理功能的开发者来说。本文介绍了如何在Java程序中调用Matlab程序的方法,重点说明了使用...

    Java程序调用MATLAB接口

    Java 程序调用 MATLAB 接口是 Java 和 MATLAB 之间的交互接口,允许 Java 程序调用 MATLAB 的函数和方法。本文将详细介绍 Java 程序调用 MATLAB 接口的注意事项、环境安装、MATLAB 如何生成 JAR 包和 MATLAB 生成的 ...

    java_call_matlab.zip_JAVA调用matlab_java 调用matlab_java-matlab

    总的来说,Java调用MATLAB是一种强大但需要谨慎使用的技术。它允许开发者利用MATLAB的计算能力,同时利用Java的跨平台和面向对象特性。通过深入理解和实践`java_call_matlab.zip`中的内容,可以更有效地整合这两种...

    java调用matlab测试源码

    描述中提到的“包含2个MATLAB的java工程,1个java调用MATLAB的工程”,这意味着我们有三个主要部分: 1. **MATLAB工程1**:可能包含了用于处理图像的MATLAB代码,例如图像预处理、分析或转换。 2. **MATLAB工程2**...

    java调用matlab程序的一个applet-java调用matlab.txt

    java调用matlab程序的一个applet-java调用matlab.txt 最近在做java实现多Agent,如有同志可相互切磋,现附上一段java调用matlab程序的程序,希望能帮到有需要的同仁。

    在Java程序中调用Matlab函数

    在Java程序中调用Matlab函数,介绍了在java中怎样调用matlab函数来进行矩阵的分析操作

    Java中如何调用matlab代码

    1. **在Java程序中直接调用MATLAB函数**:无需通过.m文件作为中介,而是直接在Java环境中使用MATLAB的计算资源。 2. **构建用户界面**:可以在MATLAB的.m文件中直接调用Java图形界面组件来构建复杂且交互性强的用户...

    java与matlab混合编程jsp调用matlab网页显示fig

    在本文中,我们将讨论Java与Matlab混合编程的技术,具体来说是使用JSP调用Matlab生成的Figure并在网页中显示。我们将从环境配置开始,逐步介绍混合编程的步骤,并最终实现网页中的Figure显示。 一、环境配置 在...

    Java调用Matlab开发详细过程

    Java调用Matlab进行混合编程是一种常见的技术,它允许开发者利用Matlab强大的数值计算和科学分析能力,同时结合Java的跨平台和系统集成优势。以下是对这个详细过程的深入解析: 1. **Matlab程序准备**: - 首先,...

    Java中使用MATLAB作图

    Java中通过Com Builder的方式调用Matlab作图的示例。 具体说明请参考博客http://blog.csdn.net/xiaowei_cqu/article/details/7038819

    Java应用程序和java Web调用Matlab配置实例

    然后,使用MATLAB Compiler SDK将M文件编译为Java类。这一步会生成一个Java包,其中包含一个或多个Java类,这些类封装了M文件的功能。在编译过程中,你可能需要设置一些编译选项,比如输入输出参数类型,以适应Java...

    【博客 Java调用MATLAB,将文件转换为二进制流】java+matlab程序

    总之,Java调用MATLAB进行文件到二进制流的转换是一种灵活的方法,特别是在已有的MATLAB算法需要集成到Java项目时。然而,它需要理解MATLAB和Java之间的交互机制,以及对二进制数据处理的理解。通过不断学习和实践,...

    java调用matlab流程

    接着,使用MATLAB的部署工具`deploytool`来构建该函数。有两种方式可以启动`deploytool`:在MATLAB命令行中输入`deploytool`命令,或者在MATLAB界面中选择相应的图标。在`deploytool`界面中,可以选择项目名称和项目...

    从MATLAB 中调用 Java

    从 MATLAB 中调用 Java 可以通过多种方式实现,包括使用 Java 的类库和方法、使用 Java 的构造函数和方法、使用 Java 的数组对象等。例如,我们可以使用 Java 的_util 包来实现数据分析和可视化功能,或者使用 Java ...

    Java基于MCR的本地远程调用Matlab函数库.zip

    Java基于MCR的本地远程调用Matlab函数库

    Matlab与java接口(图文并茂)

    本文将详细阐述配置要求、环境配置、Java Builder的使用以及在Java工程中调用Matlab组件的关键步骤。 一、配置要求 要成功建立Matlab与Java的接口,首先需要满足以下条件: 1. MATLAB版本:至少要求R2006b(MATLAB ...

    java调用matlab笔记

    1. **编译命令:** 使用Matlab提供的编译命令将M文件编译为JAR文件。 - 常用命令: `mcc -m filename.m` (生成一个.mex文件和一个.mat文件) - 或者: `mcc -W java:packagename.Classname -d outputdir -T link:lib -...

Global site tag (gtag.js) - Google Analytics