《Linux系统下Java与Matlab混合编程及应用.pdf》由会员分享,可在线阅读,更多相关《Linux系统下Java与Matlab混合编程及应用.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、S O F l W A R ED E V E L O P M E N TA N DD E S I G N软件开发与设计L i n u x 系统下J a v a 与M a t l a b 混合编程及应用杨斌(青岛高校信息产业有限公司,青岛2 6 6 0 7 1)摘要:在L i n u x 系统中,运用M a t l a b 2 0 0 9 a 的B u i l d e rJ A 模块,将m 文件编译打包成j a r 包。结合需求实例,利用J a v a 开发环境E c l i p s e,编写J a v a 应用程序,调用M a t l a b 编译后的类,实现L i n u x 系统下J a
2、v a 和M a t l a b 的混合编程。关键词:M a t l a b;J a v a;u b u n t u;混合编程M i x e dP r o g n m m a i n ga n dA p p l i c a t i o no fJ a v aY A N G B i n(Q i n g d a oG a o x i a oI n f o r m a t i o nI n d u s t r yC o,L t d,Q i n g d a o2 6 6 0 7 1)A b s t r a c t:T h eB u i l d e rJ Am o d u l eo fM a t l a
3、 b2 0 0 9 ai su s e dt oc o m p i l emf i l e st oj a rp a c k a g e si nl i n u xo p e r a t i n gs y s t e m s C o m b i n i n gw i t ha l le x a m p l eo n eJ a v aa p p l i c a t i o np r o j e c ti sb u i l db yE c l i p s e A n dt h eC l a s sf i l e sc o m p i l e db yM a t l a ba r et r a n
4、s f e r r e dt ob eu s e di nt h ep r o j e c t M i x e dp r o g r a m m i n go fJ a v aa n dM a t l a bi si m p l e m e n t e d K e yw o r d s:M a t l a b;J a v a;u b u n t u;m i x e dp r o g r a m m i n g在当代软件产品的开发过程中,由于应用需求的不同和各类编程语言各自的优劣性,为降低程序设计的复杂度,根据需求运用集中不同的语言混合编程正日益成为软件产品开发的主流。运用不同语言之间的优势互补
5、,可以最大限度地提高企业产品开发效率,并降低相应的人力资源开发成本。M a t l a b 最为市面上功能最为强大的科学计算软件,在科学研究以及工程上有着广泛的应用。M a t l a b 具有各种应用性领域的算法工具包,以及强大的图形化功能。因此在有些产品或项目中数据处理,预测优化方面,如果能够利用M a t a l b实现编程,可以有效地提高工作效率。J a v a 是面向对象的高级开发语言,由于其与平台无关、安全、稳定以及多线程等特点,在项目开发特别是一些政府、银行的项目中应用广泛。但是许多情况下在J a v a 与数据库的开发过程中,需要对数据进行更多维的复杂的高要求的分析和处理,这些
6、对J a v a 语言来说实现起来较为困难。W i n d o w s系统下运用J a v a 和M a f l a b 语言的混合编程已经有了一些研究和应用,随着M a t l a b 与外部程序的接口的不断更新,应用M a t l a b 的U n i x 版本的B u i l d e rJ A 功能,可以实现在L i n u x U n i x系统下运用J a v a 语言调用M a t l a b 实现混合编程。l安装配置在W i n s o w s 操作系统中已经有多种J a v a 调用M a t l a b 函数的方法,包括运用c o r n 组件,M a t l a b 自带的
7、j l I l ij a r 包,j n i 技术,V i s u a lJ+,M a t l a b 引擎1 1-$等。但是在L i n u x U n i x 操作系统中要利用J a v a 实现脱离M a t l a b 环境调用M 文件函数,M a f l a b 的新工具B u i l d e rJ A 是最好的选择,较新的M a a b 版本都自带有J a v a 虚拟机,可以将M 文件直接编译并打包成j a r文件来实现调用。这与在W i n s o w s 操作系统中的调用基本类似,但是由于操作系统和环境的变化,实现起来会有所不同。本文收稿日期:2 0 1 0-0 2 1 6基
8、于L i n u x 的系统平台有多个版本,本文选择具有桌面化的u b u n t u 9 0 4。首先安装u b u n t u 操作系统,可以选择在W i n d o w s 下利用w u b i 安装。之后再u b u n t u 系统中安装M 2 0 0 9 af o ru n i x 版本的镜像文件,挂载文件并安装,一般要装在u b u n t u的系统盘中,否则可能会出现安装错误。同时安装J D K 并配置好相应的环境变量。然后下载基于J a v a 的可扩展性开发平台e c l i p s e,解压到u b u n t u 系统r o o t 目录下。这样就完成了u b u n
9、t u 系统中实现J a v a 调用M a t l a b 实现混合编程的伞部配置。另外需要注意的是利用B u i l d e rJ A1:具,必须安装M a t l a b 编译T 具,即M C R 在安装M a t l a b 时已经默认安装,在调用时会用到其安装路径。因此在脱离M a t l a b 环境调用j a r 包时,目标机只需要安装M C R 工具,脱离M a f l a b 环境。2 混合编程完成了以上配置,可以在u b u n t u 系统中调用M a t l a b 大部分工具箱函数,以及自己编程来完成一些复杂的数值计算功能。2 1M a t l a b 函数编写及编译
10、旧M a t l a b 具有强大的数值计算以及绘图功能,有包括数值计算、统计、优化、经济等多个应用领域的工具箱。因此在数据处理方面。一个复杂的问题可能运用M a f l a b 的一个函数就可以实现,因此极大地降低了利用其他语言编程的复杂度,并且由于数值精度高,因此能够得到较好的运算结果以及各种复杂的图形输出。但是并不是所有的M a t l a b 库函数都可以实现脱离M a t l a b 环境的调用,有些M C R 不支持的M a t l a b 函数例如神经网络工具箱的t r a i n、s i r e 等函数,以及g u i 函数文件等,这些函数就只能通过M a t l a b 引擎
11、实现混合编程。M C R支持的M a t l a b 库函数可以通过m a t h w o r k s 公司的网站查看。由于M a t l a b 的开源性,所有的M a f l a b 库函数都支持修改和直接一2 9 万方数据电脑编程技巧与维护调用,因此可以根据问题的需要方便地利用M a f l a b 库函数,发挥其算法优势。在基于L i n u x U n l x 操作系统J a v a 平台开发的数据系统中,对于数据的各种复杂的处理,考虑运用J a v a 调用M a d a b 函数来实现。本文结合某公司销售数据实例,先在u b u n t u 系统中调试通过,因此可以直接将J a
12、v a 程序移植到系统中,实现嵌入调用。根据销售预测的需求,利用某公司两年2 4 个月的销售数据,预测未来6 个月的销售情况。运用时间序列的趋势季节方法实现产品销售数量的预测,提供决策支持。运用M a t l a b 的工具箱,在文件夹y c f x T e s t)r c f x M 下编写相应的j j y c m 文件如下:j j y c mf u n c t i o nr e s u l t=j j y c(d a t a,z q,y c s)l=l e n g t h(d a t a);p-m o dm z q);f o ri=l:z qp p=z e r o s(1,z q);f o
13、 rj=l:n sP P(i)=p p(i)+d a t a(z q(j-i)“);e n dy p J(i)-p p(i)n s;e n dp a=p o l y f i t(1:l,d a t a l,1);n e w y-n e w y*y z s(q q);r e s u l t-n e w y;p l o t(1:l+l,【d a t an e w y(1)】,_ r,l+l:y c s,n e w y,r-+,);l e g e n d(t r u ev a l u e ,p r e d i c t e dv a l u e );要保证B u i l d e rJ A 能够编译成功
14、,首先要测试M a f l a b 是否识别机器中安装J D K,否则编译会出错。在u b u n t u 的终端打开M a t l a b,在命令窗口输入g e t e n vJ A V A _ H O M E 和g e t e n vJ A V A _ C L A S S,出现相应的路径,说明J a v a 的环境变量配置正确。在M a d a b 的命令窗口输入d e p l y t o o l 打开B u i l d e rJ A,新建J a v ap a c k a g e,注意和要编译的M 文件要在同一个文件夹下,命名为y c f x P m。将其类文件重命名为y e f x C
15、l a s s,添加上j j y e m文件,进行编译,编译成功之后,便会在y c f x T e s t y c f x M、y c f x P r o k l i s t r i b 下产生y c f x C l a s s j a r 文件包。2 2J a v a 调用M a t l a b 函数打开e c h p s e 程序,工作路径为y c f x T e s t y c f x J a v a,新建J a v a 工程命名为y e f x A p p,在工程中A d dE x t e m e lA r c h i v e s,选择路径y c f x T e s t y c&M、y
16、 m P 洲i s t r i b,添加y c f x C l a s s j a r 包。更为重要的是添加M a d a b 自带的j a r 包,需要安装M a t l a b 的M C R 组件,由于安装M a t l a b 时自动安装M C R,因此j a r 包以及后面提到的环境变量的设置路径在安装M a f l a b 机和安装M C R 机上会有所不同。默认机器中已经安装M a d a b,在y c f x _ a p p 工程中A d dE x t e r n e lA r c h i v e s 选择、l M a t l a b 安装路径t o o l b o x j a
17、v a b u i l d e r j a r j a v a b u i l d e r j a r o在工程s c r 新建p a c k a g e,命名为y c f x A p p,新建d e f a u l t一3 0 c l a s s 命名为y c f x C l a,编写J a v a 程序调用M a f l a b 的y c f x C l a s s类的j j y c 方法,实现预测分析,如下所示暇:p a c k a g ey e f x A p p;i m p o r tc o m m a t h w o r k s t o o l b o x j a v a b u
18、i l d e r*;i m p o r ty c f x P r o*;c l a s sy e f x C l alp u b l i cs t a t i cv o i dm a i n(S t r i n g 口a r g s)IM W N u m e r i c A n 麓yd a t a=n u l l;M W N u m e r i c A r m yz q2n u l l;M W N u m e r i c A r r a yy c s=n u n;O b j e c t 口r e s u l t=n u l l;y c f x C l a s st h e J j y c=n
19、 u l l;t r yi I l t 口d i m s=1,n l;d a t a=M W N u m e r i c A r r a y n e w I n s t a n c e(d i m s,M W C l a s s l D D O U B L E,M W C o m p l e x i t y R E A L);c a t c h(E x c e p f i o ne)S y s t e m o u t p r i n t l n(”E x c e p t i o n:”+e t o S t r i n go);f i n a l l yM W A n a y d i s p o
20、 s e A r r a y(d a t a);M W A r r a y d i s p o s e A r r a y(z q);M W A r r a y d i s p o s e A r r a yt y c s);i f(t h e J j y c!=n u l l)t h e J j y c d i s p o s e0;ll在工程运行时,设置为J a v a 应用程序,在环境变量设置中,添加环境变量L D I-U B R A R Y-P A T H,值为M a t l a b 安装路径、b i n、g l n x 8 6;和X A P P L R E S D I R,值为M a
21、 t l a b 安装路径L Y l l、a p p-d e f a u l t sf f l。选择相应的主类,运行工程,就会出现如同M a t l a b 的计算结果。结果如下:T h ep r e d i c t e dv a l u e sa r e;1 0 9 1 6 6 19 4 9 4 0 61 0 4 1 1 9 01 2 2 5 0 1 6 1 4 2 8 6 7 11 3 5 3 1 3 03结语利用M a t l a b 的B u i l d e rJ A 组件实现了在u b u n t u 系统中调用M a f l a b 函数编译成的类文件,从而很好地解决了软件系统中的
22、数据的分析预测工作,得到了较好的结果,充分利用M a d a b 强大的数据计算功能,缩短了编程时间,提高了工作万方数据s o v r W A R ED E V E L O P M E N TA N DD E S I G N软件开发与设计效率。只是利用L i n u x 操作系统的u b u n t u 版本,并且在J a v a应用程序中简单调试,同样利用J a v a 语言在L i n u x 的其他操作系统以及U n i x 系统开发的一些软件系统中。可以应用文中思路,完全脱离M a t l a b 环境,将M a t l a b 应用嵌入到相应的系统程序中,在系统中利用J a v a
23、从系统数据库中取得数据。与M a t l a b 类实现数据传递,来完成相应的功能,增强系统的数据分析处理功能。由此可见混合编程在应用中有广泛的前景,是多需求大规模系统开发的新发展方向。参考文献【l】黄会,刘浩,魏克新J a v a 和M a t l a b 混合编程的研究及应用叨天津理工大学报,2 0 0 8【2】陈怀铭,蔡剑卿,黄春晖J a v a 和M a t l a b 混合编程及其应用叨科学技术与工程,2 0 0 8【3】任文杰,王伟,马松辉,陈怀民M a t l a b 和J a v a 的混合编程研究与实现叨测控技术叨,2 0 0 9,2 8(1)【4】林美,吕新安,齐从谦基于M
24、 a t l a b 与J a v a 的混合编程研究及实现【J】农业网络信息,2 0 0 6,(1 2)【5】夏成锋基于C O M 及J a v a C O M 桥的J a v a 与M a t l a b 混合编程叨现代计算机,2 0 0 5,(1 2)f 6】T h eM a t h W o r k s,I n c M a t l a bB u i l d e 川A2 U s e r 8G u i d e M】2 0 0 9【7】J i p e n gT a n。J a v a 与M a t l a b 在L i n u x 下混编的配置指南h t t p:m y t h a l i I
25、 l f c 帕l o g,?p 2 9 9 M a y2 3 r d,2 0 0 9 作者简介杨斌,男(1 9 8 5 一),硕士研究生,研究方向:数学建模及应用。(上接第2 6 页JC r e a t e T h r e a d(N U L L,0,(L P T H R E A D _ S T A R T _ R O U-4结语T 玳吧)t l l r e a 生:!譬美,n 当塑裴登氅!曼:。:。一。+网络资源采集器可广泛应用于对网络资源量需求很大的S t e p 2 在规定的i 时间内等待下载譬程的执行结束领域:。菘蓑祥磊;萎羞篇舅蒿差享茹福主筷兰茎茹集亲蒿茹W a i t F or
26、S i n g l e O b j e c t(t h d 3 0 0 0 0):”“。J 一3“7“7。1。=L。“1”、。2”1、87 1S t e p 3 若超时则强制结束下载线程资源,下一步的工作可放在对网络资源的分析上,让网络资T e r m i n a t e T h r e a d(t h d,-1);源采集下来后变为人们可容易接受的知识信息。I I S t e p 4 释放下载线程中的内存空间孽t r e e 掣-p t l l d?-眦m 8 饥眦m o 训、参考文献pa-memstrm c m o r y1):7 7 w、3 3 用户使用界面展示【1】肖明忠,代亚非B l
27、o o mF i l 鼢及其应用综述【M】计算机如图2 所示。科学,2 0 0 4,3 3(4):1 8 0 一1 8 3【2】李魁大规模W e b 论坛采集技术研究【D】中国科学院计算技术研究所硕士学位论文,2 0 0 6【3】L i b c u r l 官方网站,h t t p:c u r l h a x x s e l i b c u r l 图2 软件用户界面展示图作者简介胡启韬,男(1 9 8 5 一)。库与数据挖掘。袁志平,男(1 9 7 5 一),数据存储。硕士,助理工程师,研究方向:数据硕士,工程师,研究方向:数据库与周忠海,男(1 9 7 1 一),硕士,高级工程师,研究方向
28、:信息处理。一3 1 万方数据Linux系统下Java与Matlab混合编程及应用Linux系统下Java与Matlab混合编程及应用作者:杨斌,YANG Bin作者单位:青岛高校信息产业有限公司,青岛,266071刊名:电脑编程技巧与维护英文刊名:COMPUTER PROGRAMMING SKILLS&MAINTENANCE年,卷(期):2010(8)参考文献(7条)参考文献(7条)1.陈怀铭;蔡剑卿;黄春晖 Java和Matlab混合编程及其应用期刊论文-科学技术与工程 2008(14)2.黄会;刘浩;魏克新 Java和Matlab混合编程的研究及应用期刊论文-天津理工大学学报 2008(
29、1)3.Jipeng Tan Java与Matlab在Linux下混编的配置指南 20094.The MathWorks,Inc Matlab BuilderTMJA 2Users Guide 20095.夏成锋 基于COM及Java-COM桥的Java与Matlab混合编程期刊论文-现代计算机 2005(12)6.林美;吕新安;齐从谦 基于Matlab与Java的混合编程研究及实现期刊论文-农业网络信息 2006(12)7.任文杰;王伟;马松辉;陈怀民 Matlab和Java的混合编程研究与实现期刊论文-测控技术 2009(01)本文读者也读过(10条)本文读者也读过(10条)1.向遥.李宏
30、.谢政.XIANG Yao.LI Hong.XIE Zheng 运用Java编程扩展Matlab虚拟现实的交互功能研究与实现期刊论文-计算技术与自动化2006,25(1)2.黄会.刘浩.魏克新.HUANG Hui.LIU Hao.WEI Ke-xin Java和MATLAB混合编程的研究及应用期刊论文-天津理工大学学报2008,24(1)3.陈怀铭.蔡剑卿.黄春晖.CHEN Huai-ming.CAI Jian-qing.HUANG Chun-hui JAVA和MATLAB混合编程及其应用期刊论文-科学技术与工程2008,8(14)4.任文杰.王伟.马松辉.陈怀民.REN Wen-jie.WA
31、NG Wei.MA Song-hui.CHEN Huai-min MATLAB和JAVA的混合编程研究与实现期刊论文-测控技术2009,28(1)5.刘倩.孙玉坤.黄永红.LIU Qian.SUN Yu-kun.HUANG Yong-hong 基于SSH框架神经网络建模在发酵过程中的应用期刊论文-传感器与微系统2010,29(8)6.杨舰.胡威.陈小玲.Yang Jian.Hu Wei.Chen Xiao-ling MATLAB与JAVA直接数据通讯的方法期刊论文-广东技术师范学院学报2007(10)7.郭志强.黄燕.吴平.GUO Zhi-qiang.HUANG Yan.WU Ping Java-MATLAB集成方法的分析与探讨期刊论文-农业网络信息2006(6)8.林美.吕新安.齐从谦.LIN Mei.LV Xin-an.QI Cong-qian 基于MATLAB与JAVA的混合编程研究及实现期刊论文-农业网络信息2006(12)9.刘倩 基于政府局域网的宏观经济决策支持系统设计学位论文201010.徐鑫.胡晓娅.汤强.XU Xin.HU Xiao-ya.TANG Qiang 统计模型在B/S架构的大坝安全监控系统中的应用期刊论文-计算机技术与发展2011,21(2)本文链接:http:/