如何使用matlab在网页中作图

发布时间:2012-02-23 23:43:30   来源:文档文库   
字号:

Matlab的函数绘图功能应该是所有数值分析软件中最出色的,在自己的网页中加入Matlab图形,不仅可以使自己的网页显得酷很,而且可以使自己的网页非常专业,尤其适合发表论文时作为引用的验证系统的网站,同时网页上的Matlab图形还允许用户和图形之间做高效的互动。

本文的基础建立在你已经知道如何对Matlab库函数或者是手动编写的函数打jar包,并在一般java应用程序中调用。本文将主要讲解如何部署包含有定制Matlab图形的网站,所采用的基本工具是Matlab R2010b(注意,更低版本的Matlab可能不具备打jar包的功能)Tomcat6,其他工具有MyEclipse。本文将尽量以最浅显易懂的方式介绍在网页中加入Matlab图形的方法。

使用java在网页中加入Matlab图形有三种方式:

1、使用servlet返回的HTML字符串将Matlab图形嵌入网页;

2、直接使用JSP中的WebFigure标签;

3、使用中间件将整个Matlab图形嵌入网页,包括其功能和操作。

本文将只介绍第二种方法。

1 Matlab函数编写

首先确定返回WebFigureMatlab函数的基本形式如下:

function [result1 result2] = getfigure(parameter1, parameter2)        f = figure('Visible','off');              %建立一个Figure.         生成函数图形的代码,插入到f中去;                            result1 = webfigure(f);     %Figure转换为WebFigure并返回         close(f);                               %将原始Figure f关闭end

使用Matlab编译器将上述函数打成jar包,在编译之前最好在Matlab窗口中测试一下这个函数,以保证其可以返回期望的结果,为了看到图形可以将close(f)语句暂时注释掉。

2 Web工程的配置

2.1 工程结构

基本结构如下:

Webroot

   --WEB-INF

     web.xml

     webfigures.tld

     --classes

       yourservlet.class

     --lib

       javabuilder.jar

       yourmatlabclass.jar

   yourindex.jsp

   yourindex.html

对于tomcat来说,直接将此目录copy到其webapps目录下就可以完成部署,但作者还是建议在MyEclipse中将此工程目录打成war包后,在tomcatmanage窗口中完成部署。

Tomcat只有一个部署文件web.xml,其中需要做一些修改,之后介绍。

Webfigures.tld是显示matlab图形必须的文件,建议在matlab安装文件夹中自己查找,加入到网站目录树中。

Classes文件夹中放置的是一些编译好的文件,如servlet类。这些servlet需要事先编译,编写servletweb applicationsrc文件夹下,注意在工程中包含javabuilder.jar等必须的jar包,打war包时,MyEclipse会自动将编译好的class文件从src文件夹copyclasses文件夹。

Lib文件夹可以不用考虑,打war包时,MyEclipse会自动将用户添加的jar包添加到这个文件夹下。

Web根目录下放置jsp文件和html文件,注意包含必要的jar包,否则会报错,但不会影响打war包。

 

这次使用java搭建网站有一些强烈的感觉,其实用J2EE搭建网站还是非常容易的,只要你遵循J2EE的基本规范就可以了,具体的来说就是遵循上述文件设置规范,以及相应的文件编写规范。另外,对于相对规模较小的应用,JSP+Servlet非常快捷且方便的,像JSP,可以直接在tomcatwebapp部署文件夹下,使用文本编辑的方式直接修改,再使用浏览器直接进行调试,非常方便且直接。似乎听有人说现在开发都不再使用Bean了,不知道是不是真的。

2.2 修改部署文件

使用MyEclipse建立一个Web Application工程,修改Webroot目录下WEB-INF目录下的web.xml部署文件,在web-app标签中加入如下代码:

<servlet>  WebFigures                com.mathworks.toolbox.javabuilder.webfigures.WebFiguresServlet            WebFigures    /WebFigures/*

如果你生成了自己的servlet的话,还需要添加相应的代码。

3 生成jsp文件

Jsp头部需要添加的东西:

<%@ taglib prefix="wf" uri="/WEB-INF/webfigures.tld" %>

引用webfigures.tld文件,定义标签项。

<%@ page import="com.mathworks.toolbox.javabuilder.webfigures.WebFigure" %>

引用WebFigure库,以及你自己编写的Matlab类库,另外引用com.mathworks.toolbox.javabuilder.*也是必须的,因为其中包含一些Error定义以及必要的类和接口的定义。

 

body体中加入如下类似的代码:

<%               YourComponentClass myDeployedComponent = null;    try {               myDeployedComponent = new YourComponentClass();        try {               WebFigure webFigure = (WebFigure)                 (MWJavaObjectRef)myDeployedComponent.getfigure(1)[0]).get();//matlab类的使用就不再说明了,此处调用与在普通java程序中调用matlab类是相同的              request.getSession().setAttribute("YourFigure", webFigure);       }       catch(ClassCastException e)       {               throw new Exception                       ("Issue casting deployed components                                       outputs to WebFigure", e);       }               }    catch (Exception e) {              e.printStackTrace();        }    finally {       myDeployedComponent.dispose();        }%><wf:web-figure name="YourFigure" scope="session"/>

 

war包,将上述网站工程部署,恭喜你已经可以看到自己定制的包含Matlab图形的网页了。

 

最后,再谈一谈我这段时间使用Matlab的感受吧,最直观的感受就是简单易用而且强大,看Matlab的帮助文件感觉条理和结构非常清晰,措辞明确且浅显易懂,非常符合科研人员的一贯作风。

就以webfigure的使用这篇帮助文献来说吧,声明了开发一个matlab网站需要哪些人员,每个人员的技能准备要求,别被其中Expert要求所吓倒,其实matlab并不要求Expert有非常深入的技能,局部基本功就足够了。文章清晰得列出了开发过程中所可能遇到的方方面面的问题,并分门别类,还给出了具体的例子,matlab的帮助文件从不故弄玄虚,每一句话都直指核心问题,且浅显易懂,通俗的说,看过帮助文件的每一句话,你都能具备举一反三的能力。

本文来源:https://www.2haoxitong.net/k/doc/fd52a1baf121dd36a32d827e.html

《如何使用matlab在网页中作图.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式