Matlab的函数绘图功能应该是所有数值分析软件中最出的,在自己的网页中加入Ma tlab图形,不仅可以使自己的网页显得很酷很炫,而且可以使自己的网页非常专业,尤其适合发表论文时作为引用的验证系统的网站,同时网页上的Matla b图形还允许用户和图形之间做高效的互动。
本文的基础建立在你已经知道如何对Matla b库函数或者是手动编写的函数打jar包,并在一般ja va应用程序中调用。本文将主要讲解如何部署包含有定制Matla b图形的网站,所采用的基本工具是Ma tlab
R2010b(注意,更低版本的M atlab可能不具备打jar包的功能),Tomcat6,其他工具有M yEcli pse。本文将尽量以最浅显易懂的方式介绍在网页中加入Matl ab图形的方法。
使用java在网页中加入Matl ab图形有三种方式:
1、使用serv let返回的HTML字符串将M atlab图形嵌入网页;
2、直接使用JS P中的We bFigu re标签;
3、使用中间件将整个Mat lab图形嵌入网页,包括其功能和操作。
本文将只介绍第二种方法。
1 Matlab函数编写
首先确定返回WebFi gure的Matla b函数的基本形式如下:
functi on [result1 result2] = getfig ure(parame ter1, parame ter2) f = figure('Visibl e','off'); %建立一个Fi gure.生成函数图形的代码,插入到f中去; result1 = webfig ure(f); %将Figur e转换为W ebFig ure并返回 close(f); %将原始Fig ure f关闭end
使用Matl ab编译器将上述函数打成jar包,在编译之前最好在Mat lab窗口中测试一下这个函数,以保证其可以返回期望的结果,为了看到图形可以将cl ose(f)语句暂时注释掉。
2 Web工程的配置
2.1 工程结构
基本结构如下:
Webroo t
--WEB-INF
webfig ures.tld
--classe s
yourse rvlet.class
--lib
javabu ilder.jar
yourma tlabc lass.jar
yourin dex.jsp
yourin dex.html
对于tomc at来说,直接将此目录copy到其weba pps目录下就可以完成部署,但作者还是建议在MyE clips e 中将此工程目录打成war包后,在tomca t的man age窗口中完成部署。
Tomcat只有一个部署文件wl,其中需要做一些修改,之后介绍。
Webfig ures.tld是显示matla b图形必须的文件,建议在mat lab安装文件夹中自己查,加入到网站目录树中。
Classe s文件夹中放置的是一些编译好的文件,如servl et类。这些serv let需要事先编译,编写serv let在w eb applic ation的src文件夹下,注意在工程中包含jav abuil der.jar等必须的jar包,打war包时,MyEcli pse 会自动将编译好的clas s文件从s rc文件夹copy到class es文件夹。
Lib文件夹可以不用考虑,打war包时,MyEcli pse会自动将用户添加的jar包添加到这个文件夹下。
Web根目录下放置js p文件和h tml文件,注意包含必要的jar包,否则会报错,但不会影响打war包。
这次使用ja va搭建网站有一些强烈的感觉,其实用J2E E搭建网站还是非常容易的,只要你遵循J2EE的基本规范就可以了,具体的来说就是遵循上述文件设置规范,以及相应的文件编写规范。另外,对于相对规模较小的应用,JSP+Servle t是非常快捷且方便的,像JSP,可以直接在t omcat的weba pp部署文件夹下,使用文本编辑的方式直接修改,再使用浏览器直接进行调试,非常方便且直接。似乎听有人说现在开发都不再使用B ean了,不知道是不是真的。
2.2 修改部署文件
使用MyEc lipse建立一个W eb Applic ation工程,修改Webr oot目录下WEB-INF目录下的web.xml部署
文件,在web-app标签中加入如下代码:
<servle t> <servle t-name>WebFig ures</servle t-name> <servle t-class> com.mathwlbo x .javabu ilder.webfig ures.WebFig uresS ervle t </servle t-class></servle t><servle t-mappin g> <servle t-name>WebFig ures</servle t-name> <url-patter n>/WebFig ures/*</url-patter n></servle t-mappin g>
如果你生成了自己的se rvlet的话,还需要添加相应的代码。
3 生成jsp文件
Jsp头部需要添加的东西:
<%@ taglib prefix="wf" uri="/WEB-INF/webfig ures.tld" %>
引用webf igure s.tld文件,定义标签项。
<%@ page import="com.mathwlbo x.javabu ilder.webfig ures.WebFig ure" %>
引用WebF igure库,以及你自己编写的Mat lab类库,另外引用co m.mathwlbo x.javabu ilder.*也是必须的,因为其中包含一些Err or定义以及必要的类和接口的定义。
在body体中加入如下类似的代码:
<% YourCo mpone ntCla ssmyDepl oyedC ompon ent = null; try
{ myDepl oyedC ompon ent = new YourCo mpone ntCla ss(); try
{ WebFig urewebFig ure =
(WebFig ure) (MWJava Objec tRef)myDepl oyedC ompofig ure(1)[0]).get();//matlab类的使用就不再说明了,此处调用与在普通jav a程序中调用matl ab类是相同matlab软件怎么使用
的 requeSes sion().setAtt ribut e("YourFi gure",
webFig ure); } catch(ClassC astEx cepti on e) { thrownew
Except ion ("Issuecastin g deploy ed compon ents output s to WebFig ure", e); } } catch(Except ion e) { e.printS tackT race(); } finall y
{ myDepl oyedC ompon ent.dispos e(); }%><wf:web-figure name="YourFi gure" scope="sessio n"/>打war包,将上述网站工程部署,恭喜你已经可以看到自己定制的包含Matla b图形的网页了。
最后,再谈一谈我这段时间使用Matla b的感受吧,最直观的感受就是简单易用而且强大,看Matla b的帮助文件感觉条理和结构非常清晰,措辞明确且浅显易懂,非常符合科研人员的一贯作风。
就以webf igure的使用这篇帮助文献来说吧,声明了开发一个matl ab网站需要哪些人员,每个人员的技能准备要求,别被其中Ex pert要求所吓倒,其实matl ab并不要求Expe rt有非常深入的技能,局部基本功就足够了。文章清晰得列出了开发过程中所可能遇到的方方面面的问题,并分门别类,还给出了具体的例子,
matlab的帮助文件从不故弄玄虚,每一句话都直指核心问题,且浅显易懂,通俗的说,看过帮助文件的每一句话,你都能具备举一反三的能力。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论