MATLAB Builder for Java混合编程开发手册
JAVA和MATLAB混合编程及其应用
很 强 的编程 语 言 , 用 程 序 如 果 能 全 部用 J V 语 应 AA
言来 编程 固然 很 好 。但 在 实 际 的 编程 过 程 中 , 如果
已经 有 了大量 测试 过 和调 试 过 的其 它 语 言 的 代码 ,
将这 些代 码移 植 成 J V 语 言 很 费 时 间 , 且产 生 AA 而
维普资讯
3 5 94
科
学
技
术
与
工
程
8卷
供 的面 向 c c +和 Fra /+ ot n等语 言 的接 口函数 , 户 r 用 可 以通过 在其 它编 程 环境 中调 用 这些 接 口函数 , 实
现 对 MA L B的控制 。通 过 MA L BE g Βιβλιοθήκη , TA T A n i 应用 n
序设计 语 言 。它 具 有 简 单 、 平 台 、 布 式 、 释 跨 分 解 性 、 靠 、 全 、 构 中立 性 、 移 植 性 、 性 能 、 可 安 结 可 高 线 程 等优 点 , 已被广 泛 应 用 于 开发 各 种 商 业 软件 。但
是 ,A A对某 些 比较 复 杂 的数 学 运 算 的编 程 比较 JV
能 的数值计 算 和 可视 化 软 件 。它 的编 程 比较 简单 , 有 强大 的矩 阵运 算 及 图形 显 示 能 力 , 有 多样 化 的 还 各种 工具箱 可供 使 用 , 数 值 分析 、 号处 理 、 在 信 系统
辨识 、 特殊 函数 和 图形 等 方 面 具 有 广泛 的应 用 。不 过, 由于 MA L B是 一 种 解 释 性 语 言 , 行 效 率 比 TA 执 较低 , 而且 它 并 不 适 用 于 通 用 的 编 程 平 台 , 就 大 这
用Matlabcontrol实现Java与Matlab的混合编程
显然 , tb具有 强大 的数 学运算 、 Maa l 图形展 示 和
仿 真功能 , 但作 为 一种解 释性 语言 , 其执 行效 率相 对 较低 , 编程 的灵 活性有 限 , 而 大大 限制 了其功 能 且 从 的发 挥 , Jv 言恰好 具 有各 种 通 用 编程 语 言 的 而 aa语 灵 活性 。若能 将 Jv aa与 Mal t b两 者有 机结 合 , 可 a 则 充分 发挥 各 自优点 , 速 构建 应 用 系统 “ 。该 文 快 研究 如何 基 于 Mal cnrl 现 Jv t b ot 实 a o aa与 Ma a t b的 l
2 在 M tb中使 用 eic s ah t 命 令 加 入 ) al a dt l s t. t ap x
以下两 行
D:Porm Fl / al / 2 0 a Jv/a j . / rga i s M t b R 0 9 / aajr mi e a / jr a
I / lp e : Eci s
Ma a t b的功 能 , 实现 在 Ma a l 并 t b和 调 用程 序之 间 的 l
数据 传输 。引 擎 函 数 可 以 采 用 C C + / +或 者 F R O —
cnrl ot 兼容 。 o
2 1 开发环境及配 置 .
TA R N程 序 , 他 语 言 也 可 通 过 标 准 的 A t e / 其 c vX i C M 接 口实 现与 M t h的相互通 信 。 O al a 从 Mal 6开 始 ,aa就被 完全 集成 到 了 Ma a tb a Jv tb l 开发环 境 中。Ma a 6之后 的 版本 都 自带 一 个 Jv tb l aa 虚拟机 (V , Ma a 令 运行 环 境 和 Ma a J M) 在 t b命 l t b函 l 数 中均可 以创建 和 使 用 Jv aa虚拟 机 支持 的任何 J— a
Java-Matlab混合编程的研究
( C o m pu t e r C e n t e r , Xi ’ n n I n t e r n a t i o n a l U n i v e r s i t y, Xi ’ 帆 7 1 0 0 7 7,C h i n a)
性 质 的 计 算程 序 的 实现 为例 , 证 明 了这 种 混 合 编 程 方 法 的 可 行性 , 说明将 J a v a语 言开 发 复 杂 图 形界 面 的 能 力 和 Ma 算 和 数 据 处 理 能 力 结合 起 来 。 能 够 开 发 出更 专 业 和 功 能 更 强 大 的 软件 程序 。 关键 词 : M a t l a b ; J a v a ; 混 合 编 程 ;图形 界 面 ;热 力 学性 质计 算
第2 1 卷 第 2期
Vo 1 . 21 No . 2
电子 设计 工程
El e c t r o ni c De s i g n En g i n e e r i n g
2 0 1 3年 1 月
J a n . 2 0 1 3
J a v a - - Ma t l a b 混合 编程 的研 究
d e v e l o p a mo r e p r o f e s s i o n a l nd a mo r e p o we f r u l s o f t wa r e p r o ra g ms .
J a v a p r o ra g mmi n g l a n g u a g e a n d Ma t l a b p r o ra g mmi n g l a n g u a g e mi x e d p r o ra g mmi n g me t h o d o l o g y a n d t h e n p op r o s e s t w o k i n d s o f p r o g r a mmi n g me t h o d o l o g i e s b a s e d o n J a v a - S WT ra g p h i c d e v e l o p me n t t e c h n o l o g y a n d Ma t l a b p r o ra g m t e c h n o l o y g a s w e l l a s
Java和Matlab混合编程及其应用问题
Java和 Matlab混合编程及其应 用问题
文 /王 芳
2 Java和 Mat I ab混 合 编 程 的 分 析
降低 工 作 量 。
本 文 先 阐 述 了 混合 编 程 的 基 本思 想 和使 用 条件 ,接 着,在 明 确 Java和 Mat1ab这 两 种 编 程 基 本 涵 义 与 混合 编 程 背 景 的 基 础 上 , 从 在 Java 中 调 用 Mat1ab程 序 、 在 Mat1ab中 调 用 Java程 序 两 个 方 面 , 综 合 探 讨 了 Java和 iat1ab 混 合 编 程 的 应 用 , 并 明 确 了在 混 合 编 程 过 程 中应 该 注 意 的 问 题 。
2.3 Java和 Mat 1able合 编 程 的 背景 分 析
Java是 当 前 我 国 非 常 热 门 的 一 种 面 对 对 象 的编 程语 言,因此 Java编程 也被 广泛 用于 各 类 程 序 软件 设 计过 程 中 。 这 种 发 展 背 景 也 使 得 Java编 程 在 具 体 使 用 中 遇 到 了较 多 复 杂 的 编 程 问题 , 比 如 多 线 程 和 网 络 编 程 等 。 Java编 程 语 言 在 数 据 分 析 与 处 理 上 的 优 势 并 不 是 非 常 显 著 ,特 别 是 在 数 组 矩 阵 等 类 型 的 数 据 处 理 中 , Java编程 语言的劣势就会变得非常 明显 ,降低 了 整 个 编 程 的 效 率 和 最 终 效 果 。 而 Matlab在 这 方 面 跟 Java有 较 大 的 差 异 , 即 拥 有 非 常 突 出 的数 据 处理 优 势 , 能 够 调 动 数 学 、统 计 等 多 个领域 的函数 ,总函数数量 已经超过 了六百条 。 在 Java编 程 过 程 中 比较 复 杂 的 编 程 问题 , 如 果 能 够 使 用 Matlab来 操 作 , 可 能 仅 仅 需 要 一 条语句就可 以很 好的完成相应的编程工作 。但 Matlab编 程 对 于 多 线 程 和 跨 平 台实 现 方 面 有 所 不 足 ,跟 Java有 较 大 的差 距 。从 这 些 角 度 来 看 , Java和 M at1ab混 合 编 程 是 非常 有 意 义 的 。
matlab和java的混合编程
本人已在电脑上进行调试,并能成功运行。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 函数功能介绍:% 主程序首先决定哪个目录给电话本文件存储使用。
如果电话本文件不存在,那% 么程序通过调用java.io.FileOutStream对象的构造函数创建一个,然后关闭% 输出流。
下一步程序调用一个Java API类java.util.Properties的构造函数% 来创建一个数据目录,这个类是在哈希表中存储数据。
% 当读电话本时,程序通过调用java.io.FileOutStream的构造函数创建和打开% 一个输入流,它还调用方法导入电话本的内容。
如果查询电话,则调用% pb_lookup()函数来寻找输入的电话并显示它。
如果phonebook被调用时,没% 有参数,那么程序显示一个列表供用户查询。
% 主要有以下功能:% 查询一条记录% 增加一条记录% 删除一条记录% 修改一条记录% 列举出电话本的所有电话% 退出程序%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%主程序完整代码:function phonebook(varargin)%确定数据目录和程序全称%首先给程序命名,名称为phonebook,电话本名称为telephonebook。
如果%这个程序是允许在PC上,那么程序调用ng.System的表态方%法getProperty来寻找一个用作数据目录的目录。
pbname='telephonebook';if ispcdatadir=char(ng.System.getProperty('user.dir'));elsedatadir='e:';pbname=fullfile(datadir,pbname);end% 如果需要创建一个文件输出流% 如果电话本文件不存在,那么就需要创建一个新的文件。
java 和 MATLAB的混合编程
第8卷 第14期 2008年7月167121819(2008)1423953204 科 学 技 术 与 工 程Science Technol ogy and Engineering Vol .8 No .14 July 2008Ζ 2008 Sci .Tech .Engng .JAVA 和MAT LAB 混合编程及其应用陈怀铭 蔡剑卿 黄春晖3(福州大学物理与信息工程学院电子系,福州350002)摘 要 JAVA 和MAT LAB 的编程有各自的优缺点。
将它们结合起来进行混合编程能够充分发挥它们各自的优点,弥补单独编程的不足之处。
本文介绍了通过JN I 技术实现JAVA 对MAT LAB 调用的方法,并说明了其在量子密码通信中的一个应用。
关键词 JAVA MAT LAB 量子密码 混合编程中图法分类号 TP311.11; 文献标志码 A2008年3月25日收到福建省自然科学基金项目(Z0512003)资助第一作者简介:陈怀铭(1982—),男,福州大学硕士生,研究方向:集成电路设计与应用。
E 2mail:nedvedchm@s ohu .com 。
3通信作者简介:黄春晖,男,福州大学教授,研究方向:集成电路设计与应用。
MAT LAB 是由Mathwork 公司推出的一种高性能的数值计算和可视化软件。
它的编程比较简单,有强大的矩阵运算及图形显示能力,还有多样化的各种工具箱可供使用,在数值分析、信号处理、系统辨识、特殊函数和图形等方面具有广泛的应用。
不过,由于MAT LAB 是一种解释性语言,执行效率比较低,而且它并不适用于通用的编程平台,这就大大限制了它的应用场合。
JAVA 是由Sun 公司开发的一种面向对象的程序设计语言。
它具有简单、跨平台、分布式、解释性、可靠、安全、结构中立性、可移植性、高性能、线程等优点,已被广泛应用于开发各种商业软件。
但是,JAVA 对某些比较复杂的数学运算的编程比较繁琐,处理速度也较慢。
Java和Matlab混合编程及其应用
Java和Matlab混合编程及其应用王薇;杨丽萍【摘要】Java面向对象编程语言和Maflab具有各自的优缺点。
将二者结合起来进行混合编程应用到情感语音特征值分析可以充分发挥其各自的优点,弥补单独编程的不足。
本文介绍了通过Matlab调用Java及Java调用Matlab的技术,并简要介绍了在Java中调用Matlab实现情感语音语谱图的显示方法。
【期刊名称】《长春大学学报》【年(卷),期】2012(022)010【总页数】4页(P1186-1189)【关键词】Java;Matlab;混合编程;情感语音【作者】王薇;杨丽萍【作者单位】长春大学计算机科学技术学院,长春130022【正文语种】中文【中图分类】TP311.130 引言随着人工智能技术、信息技术的飞速发展和人类与计算机关系的日益密切,人们已经不在满足于计算机能播放和识别人类的语音信号,而且还希望计算机能够识别人类的语音情感信息,对人类情感的变化给出一定的判别。
目前较多的语音情感研究都是从语音信号中提取出一些声学特征,然后将特征化简提取出一些更有效的特征,再用模式识别中的一些方法尝试去识别语音信号中的情感[1]。
语音情感特征值的提取与分析是语音情感识别的基础,而语音情感识别是一门综合性的多领域的交叉学科,具有一定的难度,所以对情感语音信号的分析需要有一个十分方便且功能强大的工具。
MATLAB是matrix laboratory(矩阵实验室)的缩写,它自1984年由美国MathWorks公司推出后,经过不断地改进和发展,现已成为国际公认的优秀的工程应用环境,已被广泛的应用到教学、工程计算、通信、图像处理、自动化控制等领域[2]。
该软件主要包括MATLAB和Simulink两大部分。
MATLAB语句书写简单,功能强大,一条语句往往相当于其它高级语言中的几十条、几百条甚至几千条语句[3]。
在很大程度上,MATLAB摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,为工程设计、科学研究以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,成为国际科学计算软件的先进代表。
MATLAB编程基础指南
MATLAB编程基础指南第一章:MATLAB简介MATLAB是一种高级的数值计算和科学编程语言,广泛应用于工程、科学、统计学等领域。
本章将介绍MATLAB的起源、特点以及适用范围,并指引读者安装和启动MATLAB。
1.1 MATLAB的起源1.1.1 发展背景1.1.2 MATLAB的定义和功能1.1.3 MATLAB的优势和劣势1.2 MATLAB适用领域1.2.1 工程应用1.2.2 科学研究1.2.3 统计分析1.2.4 数据可视化1.3 安装和启动MATLAB1.3.1 系统要求1.3.2 安装步骤1.3.3 启动和关闭MATLAB第二章:MATLAB基本语法本章将介绍MATLAB的基本语法规则,包括变量的定义与赋值、矩阵与数组的操作、条件语句和循环语句等。
通过学习本章内容,读者将了解如何编写简单的MATLAB程序。
2.1 变量和赋值2.1.1 变量的命名规则2.1.2 变量类型和初始化2.1.3 变量的赋值和修改2.2 矩阵和数组操作2.2.1 矩阵的定义和索引2.2.2 矩阵运算和元素操作2.2.3 数组的创建和变形2.3 条件语句2.3.1 if语句2.3.2 switch语句2.4 循环语句2.4.1 for循环2.4.2 while循环第三章:MATLAB函数与脚本文件本章将介绍如何定义和使用MATLAB函数,并探讨函数和脚本文件的区别与联系。
读者将学会如何编写自定义函数,并将其与其他MATLAB功能进行结合。
3.1 函数的定义与调用3.1.1 函数的结构3.1.2 函数的调用和返回值3.2 MATLAB预定义函数3.2.1 常用数学函数3.2.2 统计函数和概率分布3.2.3 信号处理函数3.3 脚本文件的编写3.3.1 创建脚本文件3.3.2 脚本文件的执行顺序3.3.3 脚本文件与函数的关系第四章:数据处理与分析本章将介绍MATLAB在数据处理与分析方面的丰富功能,包括数据导入与导出、数据可视化、统计分析等。
Java Builder
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\*对应,
/ele/Soft/ShowSoft.asp?SoftID=60,很快,100k/s,用了4-5小时下完
2 配置java环境, 要装JDK(1.5版本以上,所有java程序的编译和运行都需要安装这个环境)。搞清楚JDK的安装的路径,比如我的是C:\Program Files\Java\jdk1.6.0_03,打开你的dos命令窗口,开始设置。
MATLAB和JAVA的混合编程研究与实现
收稿日期:2008-05-26作者简介:任文杰(1982—),男,河北枣强人,硕士研究生,专业方向为控制理论与控制工程;王伟(1957—),男,山西夏县人,教授,博士生导师,主要从事飞行控制与仿真,自适应控制的研究;马松辉(1977—),男,河南巩义人,工程师,主要从事飞行控制与仿真方面的研究;陈怀民(1963—),男,安徽涡阳人,副教授,硕士生导师,主要从事飞行控制与仿真的研究。
MAT LAB 和JAVA 的混合编程研究与实现任文杰,王 伟,马松辉,陈怀民(西北工业大学无人机特种技术国家重点实验室,陕西西安 710065)摘要:为充分发挥MAT LAB 和JAVA 的优势,提出基于两者的混合编程技术。
混合编程的关键是数据传输问题,在此采用接口技术。
研究了MAT LAB 和JAVA 在本地环境和网络环境下的混合编程方法,通过多个实例说明两者混合编程的过程和步骤。
关键词:MAT LAB;JAVA;混合编程中图分类号:TP29 文献标识码:A 文章编号:1000-8829(2009)01-0077-03Research and I m plem en ta ti on of M i xed 2LanguageProgramm i n g Ba sed on M ATLAB and JAVAREN W en 2jie,WANG W ei,MA Song 2hui,CHEN Huai 2m in(Nati onal Laborat ory of UAV S pecial Technol ogy,North western Polytechnical University,Xi ’an 710065,China )Abstract:I n order t o fully p lay the advantages ofMAT LAB and JAVA ,a m ixed 2language p r ogra mm ing technol 2ogy based on the t w o languages is p r oposed .The key of m ixed 2language p r ogra mm ing is the issue of data trans 2m issi on,here interface technol ogy is adop ted .The m ixed 2language p r ogra mm ing of JAVA and MAT LAB in the l ocal envir on ment and net w ork envir on ment is studied .Some exa mp les show m ixed 2language p r ogra mm ing p r ocess and step s of this p r ocess .Key words:MAT LAB;JAVA;m ixed 2language p r ogra mm ing MAT LAB 是目前学术界和工程界最为流行的科学计算工具,它集数值计算、符号运算、矩阵计算、信号处理和图形显示于一体,同时各个领域不断推出新的MAT LAB 工具箱,这些工具箱给各个领域的研究和工程应用提供了方便、有力的工具。
Java调用Matlab简单教程
3.在matlab新建一个Deployment 3.在matlab新建一个Deployment Project
工程名就是即将生成 的jar文件的名字
4.将mysum.m文件添加进来 4.将mysum.m文件添加进来
5. 重命名类名点击这 里build
build成功后,应该生成了一个.jar和一 个.ctf,以后要用到的两个主要文件
8. 写java driver类 driver类
try { x = new Object[3]; x[0]=1; x[1]=2; x[2]=3; /*x[0] = new MWNumericArray(1, MWClassID.DOUBLE); x[1] = new MWNumericArray(2, MWClassID.DOUBLE); x[2] = new MWNumericArray(3, MWClassID.DOUBLE); */ //x[3] = new MWNumericArray(new Double(4), MWClassID.DOUBLE); /* Create new magic object */ theMagic = new yu3class(); /* Compute magic square and print result */ result = theMagic.mysum(1, x);//1表示输出一个东西 System.out.println(result[0]); double res=((MWNumericArray)result[0]).getDouble(1);//转换成java的数据类型 System.out.println("res is: "+res); } catch (Exception e) { System.out.println("Exception: " + e.toString()); } finally { /* Free native resources */ MWArray.disposeArray(x); MWArray.disposeArray(result); null) if (theMagic != null theMagic.dispose(); } } }
Matlab混合编程配置---相关文档
第一步:安装软件(1)首先安装Visual Studio 2005或者更高版本(2)接着安装Matlab;(否则,先安装matlab会提示,电脑上必须装有.net Framework)(3)最后安装,MCRInstall.exe。
1)通过在matlab命令窗口输入mcr命令,得到MCRInstall.exe的路径,然后双击打开并安装。
2)安装MCRInstall.exe时,下面的界面是在抽取文件(处于安装等待状态),还没有安装,所以不要点击取消。
3)另外,安装完MCRInstall.exe之后,关于设置环境变量的问题。
这个时候,环境变量已经自动设置好了。
不用按照下面的设置去设置:不过,可以按照下面的方法,去看看环境变量是否设置好点击:我的电脑-属性-高级-环境变量-系统变量-PATH-编辑,在变量值输入框中,不要删除以前的字符串,在最前面加入MCR的安装路径,如:D:"Program Files\MATLAB\MATLAB Compiler Runtime\v80\bin\win32; 然后确定、保存、重启电脑。
(我就是不知道需要这两步,老是在C#创建Matlab的访问对象时,出现:“xxx的类型初始值设定项引发异常。
”完全不理解是什么原因,被耽搁了大量时间,直到安装了Matlab 2008b,仔细阅读它生成的readme.txt才知道)第二步:mbuild编译器设置在matlab的Command window中输入mbuild -setup显示如下(1)Would you like mbuild to locate installed compilers [y]/n? y这个时候选择y,如果正常的话。
就可以出现编译器。
(2)如果没有出现,只能手动设置编译器。
这个时候,需要选择n。
具体可以参考关于利用C#和Matlab进行交叉编译混合编程(一).htm具体混合编程实际项目,(第三步至第五步),可以参考以下网页内容,C#调用MatLab实现N阶幻方第三步:编写m文件:function y=mymagic(x)y=magic(x);第四步:建立VS项目:在matlab中点击“File- new -Development Project” 自己选择项目保存目录和项目名,如E:"和magicpro.prj 类型选择.NET Component,如果你要生成更通用的COM组件,选择Generic COM Component。
[教程] 【原创】MATLAB Builder For Java运行环境配置
[教程] 【原创】MATLAB Builder For Java运行环境配置这些天要搞一个MATLAB 和Java的混合编程项目,所以学习了下MATLAB Builder For Java帮助文档,今天总结了一下,于是在和大家一起分享这个美妙的过程。
如果在混合编程中有什么问题,如果您有什么好的经验请到/forum-27-1.html及时和大家分享哦。
如果有问题也欢迎与我交流:邮箱:matlabsky@ 主页:本文的计算机和MATLAB 配置如下:MATLAB版本信息:MATLAB Version 7.12.0.635 (R2011a)MATLAB License Number: 161052Operating System: Microsoft Windows 7 Version 6.1 (Build 7600)Java VM Version: Java 1.6.0_17-b04 with Sun Microsystems Inc. JavaHotSpot(TM) Client VM mixed mode操作系统信息:MATLAB Builder For MATLAB的环境配置主要包含以下几个内容:想了解您的MATLAB软件兼容的Java环境(包括Java Developer's Kit (JDK) 和Java Run-time Environment (JRE)),请查看/support/compilers/current_release/。
一、检查您的Java环境也许您的计算机上已经正确安装了Java环境,现在我们就要确定下这个Java是不是和我们当前的MATLAB Builder For Java版本相兼容:1、打开Window命令行CMD.exe。
2、在CMD.exe中输入java -version复制代码,如果正确安装了Java,将返回如下类似信息:java version "1.6.0_25"Java(TM) SE Runtime Environment (build 1.6.0_25-b06)Java HotSpot(TM) Client VM (build 20.0-b11, mixed mode, sharing)如果返回如下内容,则说明您没有安装Java哦:'java -version' 不是内部或外部命令,也不是可运行的程序或批处理文件。
Java和Maltab混合编程研究u
Java和matlab混合编程研究摘要:为了能结合Java和Matlab两者的优点,构造功能更加强大的科学计算环境,对如何进行Java和Matlab混合编程进行了研究,首先介绍了Java调用Matlab函数的基本方法,在此基础上结合工程上的实际应用,解决了材料力学中三向应力的求解问题。
关键词:Java ;Matlab;三向应力0、引言M a t l a b是美国M a t h W o r k s公司推出的一款可视化的数值计算软件,是目前学术界和工程界最为流行的科学计算工具,具有强大的数值计算,矩阵计算,信号处理和图形图像处理功能。
不过Matlab虽然功能强大,但界面开发能力较差,并且其程序不能脱离Matlab 环境独立运行。
Java是一种可靠稳定、跨平台、面向对象的语言。
其语言本身的安全性很高并引入了一些日益重要的复杂任务,比如多线程和网络编程,这些工作用java实现起来轻而易举。
然而,Java在数据分析和处理方面的能力却不那么突出,尤其是在对数组矩阵之类的数据进行操作时会因为多次循环而速度变得缓慢,这在数组或矩阵位数很大时缺点尤为突出[1]。
如果用Matlab和java混合编程开发Windows的应用程序则可以实现优势互补,缩短开发时间,降低程序设计的复杂度。
同时程序可以脱离Matlab环境独立运行,在工程计算和教学实践中都具有实际意义。
1、使用java调用Maltab函数的基本方法使用java调用Maltab函数的基本方法是:通过Java Builder实现Java调用Matlab。
在Java环境中直接调用Matlab所生成的Jar包。
下面以在Java中产生任意维数的魔方矩阵,计算任意矩阵的特征向量和特征值,对两组数据进行拟合并绘制拟合曲线三个实例来说明通过Java Builder实现Java调用Matlab的过程。
传统的纯Java编程实现上述实例非常复杂,甚至很难完成。
这一问题在Matlab中只需要调用几个函数即可完成。
Matlab与Java混合编程的算法复用模型及实现
Matlab与Java混合编程的算法复用模型及实现周涛【摘要】In view of the problem that Java is not enough to support data processing algorithm in enterprise information system,a kind of hybrid programming and multiplexing model for Matlab and Java based on Redis cache was constructed.Core algorithms library was used to design data processing algorithm based on Matlab,the input and output of the algorithm was realized by using Java synchronization management,which better solved the support deficiency of Java to algorithm programming,and satisfied the requirements of the transition from research results to business information system applications.The application examples and results show that Matlab and Java hybrid programming and multiplexing algorithm are feasible and effective.%针对当前企业信息化系统中Java对数据处理算法支持不够的问题,构建了一种基于Redis缓存的Matlab和Java混合编程及复用模型.采用Matlab的核心算法库设计数据处理算法,采用Java同步实现算法的输入和输出管理,较好克服了Java在算法编程支持上的不足,同时也满足了企业将算法研究成果有效转换到业务信息化系统中应用的需求.应用实例及效果表明采用Matlab和Java混合编程及复用算法是可行有效的.【期刊名称】《计算机应用》【年(卷),期】2017(037)0z2【总页数】4页(P259-262)【关键词】图形分析;混合编程;算法融合;Redis缓存【作者】周涛【作者单位】四川中烟工业有限责任公司信息中心,成都610066【正文语种】中文【中图分类】TP311.52随着企业现代化发展,信息化程度不断提高,已覆盖企业生产经营管理各个领域和环节。
初探java和matlab混合编程
初探java和matlab混合编程最近要实现⼀个算法,需要⽤到矩阵运算,matlab的强项就是进⾏矩阵运算,所以要⾼效进⾏矩阵运算,就要在java中调⽤matlab。
关于环境变量等的相关配置,请⼤家参考此⽂。
下⾯我要讲的例⼦是matlab⾃带的例⼦,位置在MATLABroot\R2008a\toolbox\javabuilder\Examples。
⼤家在matlab联机帮助⽂件中输⼊matlab build for java就能搜出此例⼦个⼈认为这个例⼦⽐较精髓,通过这个例⼦可以完整的弄明⽩java是如何调⽤matlab进⾏矩阵运算的此例的java⽂件如下代码/* getfactor.java* This file is used as an example for the MATLAB* Builder JA product.** Copyright 2001-2006 The MathWorks, Inc.*//* Necessary package imports */import com.mathworks.toolbox.javabuilder.*;import factormatrix.*;/** getfactor class computes cholesky, LU, and QR* factorizations of a finite difference matrix* of order N. The value of N is passed on the* command line. If a second command line arg* is passed with the value of "sparse", then* a sparse matrix is used.*/class getfactor{public static void main(String[] args){MWNumericArray a = null; /* Stores matrix to factor */Object[] result = null; /* Stores the result */factor theFactor = null; /* Stores factor class instance */try{/* If no input, exit */if (args.length == 0){System.out.println("Error: must input a positive integer");return;}/* Convert input value */int n = Integer.valueOf(args[0]).intValue();if (n <= 0){System.out.println("Error: must input a positive integer");return;}/** Allocate matrix. If second input is "sparse"* allocate a sparse array*/int[] dims = {n, n};if (args.length > 1 && args[1].equals("sparse"))a = MWNumericArray.newSparse(dims[0], dims[1],n+2*(n-1), MWClassID.DOUBLE, MWComplexity.REAL);elsea = MWNumericArray.newInstance(dims,MWClassID.DOUBLE, MWComplexity.REAL);/* Set matrix values */int[] index = {1, 1};for (index[0] = 1; index[0] <= dims[0]; index[0]++){for (index[1] = 1; index[1] <= dims[1]; index[1]++){if (index[1] == index[0])a.set(index, 2.0);else if (index[1] == index[0]+1 || index[1] == index[0]-1)a.set(index, -1.0);}}/* Create new factor object */theFactor = new factor();/* Print original matrix */System.out.println("Original matrix:");System.out.println(a);/* Compute cholesky factorization and print results. */result = theFactor.cholesky(1, a);System.out.println("Cholesky factorization:");System.out.println(result[0]);MWArray.disposeArray(result);/* Compute LU factorization and print results. */result = theFactor.ludecomp(2, a);System.out.println("LU factorization:");System.out.println("L matrix:");System.out.println(result[0]);System.out.println("U matrix:");System.out.println(result[1]);MWArray.disposeArray(result);/* Compute QR factorization and print results. */result = theFactor.qrdecomp(2, a);System.out.println("QR factorization:");System.out.println("Q matrix:");System.out.println(result[0]);System.out.println("R matrix:");System.out.println(result[1]);}catch (Exception e){System.out.println("Exception: " + e.toString());}finally{/* Free native resources */MWArray.disposeArray(a);MWArray.disposeArray(result);if (theFactor != null)theFactor.dispose();}}}。
汽车-研发-matlab与java混合编程
差。(matlab实现)
函数导出成jar包
• 在matlab编写完函数文件以后,就可以打成 jar包,给java调用。
• Java是面向对象语言,一切皆对象。Matlab 函数以类为单位导出。相当于只有函数没 有属性的类。
• Matlab要钱,java免费。
试验室使用matlab做数据分析
• 电池试验数据的分析 • 自动生成word报告。还没有教好的图形用
户界面。
• 电机试验数据的分析
MPV纯电动汽车动力仿真系统
• 纯电动汽车动力仿真系统简介
The
• Java函数的定义方法比matlab复杂得多。Matlab仅需要输入输出 列表。而java还包含权限、同步块、静态函数、返回类型、抛 出异常等。
• {public | default | protected | private} [final][static][synchronized] 返回值类型 | void 方法名称(参数类型 参数名称, ...)[throws Exception1, Exception2...]{ [return [返回值 | 返回值调用处]]; }
Matlab与java各自的优势
• Matlab在函数的定义,算法的编写,有很多成 熟的模块,而且数据的可视化做得非常好。使 编写复杂的算法功能的应用可以变得更容易, 更快捷。非常适合于工程数据分析与处理。
• Java是现代互联网编程语言的主流,让数据实 现联网共享变得非常容易实现。简单的购物系 统、校园师生档案管理系统等都很容易用java 实现。
• Matlab函数被导出后,相对于格式: Public Object [] 函数名(返回参数个数,输入参数列表) throws MVCException 返回值是一个Object类。所以运行完成得到返回值之后,需要在 java里编写Object的解析函数,将数据转换成java中相应的类里的 属性或参数。 举例:继续完成前面的函数导出成jar包,给java使用。
MATLABBuilderJA应用总结
MATLAB Builder JA总结一、配置要求1、MATLAB版本要求:至少R2006b版本(MATLAB 7.3),检查MATLAB安装文件夹下toolbox中是否有javabuilder这一项。
2、安装JDK1.5版本以上。
二、环境配置1、配置环境a)设置变量JAVA_HOME:D:/Program Files/Java /Java/jdk1.6.0_05(必须设置)b)设置JAVA系统变量:CLASSPTH:.;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/dt.jar;Path:D:/Program Files/Java/jdk1.6.0_05/bin;c)添加路径D:/MATLAB/toolbox/javabuilder/jar/javabuilder.jar;到CLASSPTH。
进行完上述设置后就可以用Java Builder简单的开发了。
但需要说明的是,如果你的Java程序中还调用了其他的.jar包,则应该在CLASSPTH中进行相应的设置。
特别注意:所有路径中最好不要包含中文、空格,否则将解析不正确。
2、配置检查a)CMD窗口键入 java –version,返回java version "version_number"Java(TM) SE Runtime Environment (build version_number.build_number)Java HotSpot(TM) Client VM (build version_number.build_number, mixed mode)b)CMD窗口键入javac -version ,返回javac version_numberc)MATLAB窗口键入getenv JAVA_HOME,返回JDK的路径本节教程主要提供一个简单的Matlab Builder For Java的演示实例,在学习这个教程前,请先配置好您的Matlab Builder For Java运行环境,具体可以参考/thread-17558-1-1.html。
MATLABCOMBuilder及创建详解
MATLABCOMBuilder及创建详解MATLAB COM Builder及创建详解1. COM生成器(COM Builder)简介COM(Component Object Model,组件对象模型)是以组件为发布单元的对象模型,是一系列面向对象技术和工具的集合。
由于COM是建立在二进制级别上的规范,所以组件对象之间的交互规范不依赖于任何特定的开发语言。
使用该集合,软件开发人员可以用不同厂商提供的组件集成他们自己的应用程序。
从6.5版开始,MATLAB提供了COM生成器。
COM生成器提供了实现MATLAB 独立应用的一种新途径。
它能把MATLAB开发的算法做成组件,这些组件作为独立的COM对象,可以直接被C++Builder、Visual Basic或其他支持COM的语言所引用。
下面详细介绍如何利用COM Builder生成器实现对nnT oolKit工具包的封装。
2.创建nnToolKit的COM组件用MATLAB COM生成器创建COM组件是一个简单的过程,只需要4个步骤,即创建工程、管理M文件和MEX文件、生成组件、打包和分发组件。
(1) 创建nnToolKit工程(MATLAB6.5环境下)在MATLAB命令行中输入命令comtool,打开“MATLAB COM Builder”对话框,它是MATLAB COM生成器的主要工作环境。
在“File”菜单中选择“New Project”选项,将弹出“New Project Setting”对话框,如下(图1)所示。
在“Component name”文本框中输入组件名nnT oolKit(DLL 文件),该组件名输入后,生成器自动在“Class name”文本框中产生一个同名的类名nnToolKit。
“Project version”文本框中为版本号,默认为1.0。
“Project directory”文本框为在编译和打包模型时,工程和相关文件的存放位置,这里为“D:MATLAB6p5worknnT oolKit”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 3 1 1 1 1 1 2 2 1 1 1 2 3 3 1 2 1
性 1
2 1 1 1 1 1 2 2
性 1
1 1 1 1 1 1 2 2
性 1
1 2 1 1 2 1 2 2
度 1
1 1 2 3 1 1 2 3
度 1
3 1 1 1 2 1 2 2
性 1
1 1 3 1 2 2 2 2
2.3.算法说明
糊神经网络 模糊神经网络(Fuzzy Neural Network,FNN)是具有模糊权系数或者输入信号是模糊量的神经 网络,是模糊系统与神经网络相结合的产物,它汇聚了神经网络与模糊系统的优点,集联想、识别、 自适应及模糊信息处理于一体。模糊神经网络的主要特点是利用神经网络调整模糊逻辑推理系统的 隶属度函数和推理规则,利用模糊推理规则的形式构造神经网络结构,从而充分发挥各自的优点。 模糊规则经过神经网络的学习,以“权值”的形式体现出来,这样规则的生成和修改则转化为权值 的确定和修改。模糊神经网络的结构决定了模糊规则条数以及隶属度函数个数,而参数决定了每条 规则的具体表达及隶属度函数的形状。 模糊神经网络的本质就是将常规的神经网络输入模糊输入信号和模糊权值。
MATLAB Builder for Java 混合编程开发 混合编程开发手册 开发手册
文件状态: [ ] 草稿 [√] 正式发布 [ ] 正在修改 [ ] 作废
文件标识: 当前版本: 作 者: 参 与 者: 完成日期:
TipDM_028 1.0.0 研发部
2011-10-28
太普软件( 太普软件() )
2. 总体说明
2.1.开发环境
MATLAB 2008a
E JDK1.6
R
My clipse 5.5.1 Tomcat 5.0
2.2.案例描述
息 客 服务感知模型 电信企业已建立了众多系统支持公司内的生产经营工作。但电信调度系统、财务管理系统、人 力资源管理系统、电信市场和营销系统等众多系统运行后,系统的使用情况没有建立一个有效的反 馈渠道及管控手段。 本案例研究一套适合电信企业的信息系统客户服务感知模型,通过模型定位信息系统服务过程
MATLAB 用来做数据挖掘,特别是利用其简单的矩阵语言加工具箱函数来实现数据挖掘算法的
示例,是比较合适的。 Statistics Toolbox 和 Neural Networks Toolbox 可 以 用 来 实 现 回 归 和 分 类 ; Optimization Toolbox 和 Genetic Algorithm and Direct Search Toolbox 可以帮助聚类算法进行 最优化运算;Fuzzy Logic Toolbox 可以进行规则推理——这些都是显而易见的。 上述工具箱是一些通用 MATLAB 的工具,下面几个函数更能体现其强大的数据挖掘能力。 kmeans() k-均值聚类 treefit() 决策树回归或分类 svmclassify() 支持向量 分类 knnclassify() k-
保密
数据挖掘平台(TipDM),在线网址:
பைடு நூலகம்
第3页
顶尖数据挖掘平台(TipDM)
文档编号: TipDM_028
1. 概述
1.1.MATLAB 的数据挖掘功能
MATLAB(Mattrix Laboratory,矩阵实验室)是美国 Mathworks 公司开发的应用软件,具备强大 的科学及工程计算能力,它不但具有以矩阵计算为基础的强大数学计算能力和分析功能,而且还具 有丰富的可视化图形表现功能和方便的程序设计能力。它的应用领域十分广泛,主要包括:数学计 算和分析、自动控制、系统仿真、数学信号处理、图形图像分析、数理统计、人功智能、虚拟现实 技术、金融系统等。
顶尖数据挖掘平台(TipDM)
文档变更记录
序号 1 2 3 4 5 6 主要更改内容 第一次发布 版本号 1.0.0
文档编号: TipDM_028
更改人 研发部 更改时间 2011-10-28
保密
数据挖掘平台(TipDM),在线网址:
第2页
顶尖数据挖掘平台(TipDM)
目录
MATLAB Builder for ava
保密
数据挖掘平台(TipDM),在线网址:
第4页
顶尖数据挖掘平台(TipDM)
MATLAB、MATLAB compiler 和 MATLAB Builder for ava
文档编号: TipDM_028
J 允许用户在 MATLAB 环境内开发算法, 然后自动将这些算法以组件的形式发布到 Java 应用程序中。用户可以使用优化的高级矩阵语言和 内嵌在 MATLAB 内的数学、图形和数据分析函数快速的开发、测试算法原型。一旦算法已经完全正 确,用户可以自动的将他们转换成 Java 类,集成到 Java 应用程序中。
近邻分类 crossvalind() 交叉验证试验 这些函数主要在 Statistics Toolbox 和 Bioinformatics Toolbox 中, 通过 MATLAB 的帮助文档 可以获得更多信息。
1.2.MATLAB Builder for Java
机
J 扩展了 MATLAB Compiler 的功能,可以自动的将 MATLAB 的算法直接 转化成 Java 类。用户能够在 MATLAB 环境以外直接使用由 Builder for Java 生成的类,就像使用其 他的 Java 类一样。 MATLAB Builer for Java 允许用户采用其他的基于 Java 的技术将 MATLAB 算法集成到桌面或网 页应用程序中。也允许用户之间共享算法(只要能访问标准接口) 。 在 MATLAB 内部创建的并且采用 MATLAB Builder for Java 生成的组件可以自由地集成到应用程 序中,无需版权费用,并且在运行的时候是不需要 MATLAB 的。
1.
1.1. 1.2. 1.3.
文档编号: TipDM_028
2.
2.1. 2.2. 2.3.
3.
3.1. 3.2. 3.3. 3.4. 3.5.
4.
4.1. 4.2.
概述............................................................................................................................... 4 MATLAB 的数据挖掘功能 ..................................................................................... 4 MATLAB Builder for Java........................................................................................ 4 技术支持................................................................................................................... 5 总体说明....................................................................................................................... 5 开发环境................................................................................................................... 5 案例描述................................................................................................................... 5 算法说明................................................................................................................... 6 实现步骤....................................................................................................................... 8 MATLAB 编程 ......................................................................................................... 8 用 Java Builder 创建 Java 组件.............................................................................. 25 环境变量设置 ......................................................................................................... 26 安装 MATLAB 运行时环境 .................................................................................. 26 JAVA 程序开发(用户可基于 MyEclipse 环境) ............................................... 27 TipDM 平台中 MATLAB 接口算法清单 ........................................................................ 30 分类与回归............................................................................................................. 30 时序模式................................................................................................................. 36