如何使用matlab在网页中作图
1个回答
推荐于2017-11-29 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:117538
获赞数:517172
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。
向TA提问 私信TA
关注
展开全部
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函数编写
首先确定返回WebFigure的Matlab函数的基本形式如下:
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包后,在tomcat的manage窗口中完成部署。
Tomcat只有一个部署文件web.xml,其中需要做一些修改,之后介绍。
Webfigures.tld是显示matlab图形必须的文件,建议在matlab安装文件夹中自己查找,加入到网站目录树中。
Classes文件夹中放置的是一些编译好的文件,如servlet类。这些servlet需要事先编译,编写servlet在web application的src文件夹下,注意在工程中包含javabuilder.jar等必须的jar包,打war包时,MyEclipse会自动将编译好的class文件从src文件夹copy到classes文件夹。
Lib文件夹可以不用考虑,打war包时,MyEclipse会自动将用户添加的jar包添加到这个文件夹下。 Web根目录下放置jsp文件和html文件,注意包含必要的jar包,否则会报错,但不会影响打war包。
这次使用java搭建网站有一些强烈的感觉,其实用J2EE搭建网站还是非常容易的,只要你遵循J2EE的基本规范就可以了,具体的来说就是遵循上述文件设置规范,以及相应的文件编写规范。另外,对于相对规模较小的应用,JSP+Servlet是非常快捷且方便的,像JSP,可以直接在tomcat的webapp部署文件夹下,使用文本编辑的方式直接修改,再使用浏览器直接进行调试,非常方便且直接。似乎听有人说现在开发都不再使用Bean了,不知道是不是真的。
2.2 修改部署文件
使用MyEclipse建立一个Web Application工程,修改Webroot目录下WEB-INF目录下的web.xml部署文件,在web-app标签中加入如下代码:
<servlet> <servlet-name>WebFigures</servlet-name> <servlet-class> com.mathworks.toolbox.javabuilder.webfigures.WebFiguresServlet </servlet-class></servlet><servlet-mapping> <servlet-name>WebFigures</servlet-name> <url-pattern>/WebFigures/*</url-pattern></servlet-mapping> 如果你生成了自己的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体中加入如下类似的代码: <% YourComponentClassmyDeployedComponent = null; try { myDeployedComponent = new YourComponentClass(); try
{ WebFigurewebFigure =
(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的帮助文件从不故弄玄虚,每一句话都直指核心问题,且浅显易懂,通俗的说,看过帮助文件的每一句话,你都能具备举一反三的能力。
本文的基础建立在你已经知道如何对Matlab库函数或者是手动编写的函数打jar包,并在一般java应用程序中调用。本文将主要讲解如何部署包含有定制Matlab图形的网站,所采用的基本工具是Matlab
R2010b(注意,更低版本的Matlab可能不具备打jar包的功能),Tomcat6,其他工具有MyEclipse。本文将尽量以最浅显易懂的方式介绍在网页中加入Matlab图形的方法。
使用java在网页中加入Matlab图形有三种方式:
1、使用servlet返回的HTML字符串将Matlab图形嵌入网页;
2、直接使用JSP中的WebFigure标签;
3、使用中间件将整个Matlab图形嵌入网页,包括其功能和操作。
本文将只介绍第二种方法。
1 Matlab函数编写
首先确定返回WebFigure的Matlab函数的基本形式如下:
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包后,在tomcat的manage窗口中完成部署。
Tomcat只有一个部署文件web.xml,其中需要做一些修改,之后介绍。
Webfigures.tld是显示matlab图形必须的文件,建议在matlab安装文件夹中自己查找,加入到网站目录树中。
Classes文件夹中放置的是一些编译好的文件,如servlet类。这些servlet需要事先编译,编写servlet在web application的src文件夹下,注意在工程中包含javabuilder.jar等必须的jar包,打war包时,MyEclipse会自动将编译好的class文件从src文件夹copy到classes文件夹。
Lib文件夹可以不用考虑,打war包时,MyEclipse会自动将用户添加的jar包添加到这个文件夹下。 Web根目录下放置jsp文件和html文件,注意包含必要的jar包,否则会报错,但不会影响打war包。
这次使用java搭建网站有一些强烈的感觉,其实用J2EE搭建网站还是非常容易的,只要你遵循J2EE的基本规范就可以了,具体的来说就是遵循上述文件设置规范,以及相应的文件编写规范。另外,对于相对规模较小的应用,JSP+Servlet是非常快捷且方便的,像JSP,可以直接在tomcat的webapp部署文件夹下,使用文本编辑的方式直接修改,再使用浏览器直接进行调试,非常方便且直接。似乎听有人说现在开发都不再使用Bean了,不知道是不是真的。
2.2 修改部署文件
使用MyEclipse建立一个Web Application工程,修改Webroot目录下WEB-INF目录下的web.xml部署文件,在web-app标签中加入如下代码:
<servlet> <servlet-name>WebFigures</servlet-name> <servlet-class> com.mathworks.toolbox.javabuilder.webfigures.WebFiguresServlet </servlet-class></servlet><servlet-mapping> <servlet-name>WebFigures</servlet-name> <url-pattern>/WebFigures/*</url-pattern></servlet-mapping> 如果你生成了自己的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体中加入如下类似的代码: <% YourComponentClassmyDeployedComponent = null; try { myDeployedComponent = new YourComponentClass(); try
{ WebFigurewebFigure =
(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的帮助文件从不故弄玄虚,每一句话都直指核心问题,且浅显易懂,通俗的说,看过帮助文件的每一句话,你都能具备举一反三的能力。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
上海钇视科技
2024-11-08 广告
2024-11-08 广告
Web3D可视化技术是我们上海钇视科技有限公司的专长之一。我们利用前沿的三维图形技术,结合Web平台,实现数据、场景的三维立体展示。无论是复杂的工业设备、宏伟的建筑群,还是微观的生物结构,都能在我们的Web3D可视化系统中生动呈现。这种技术...
点击进入详情页
本回答由上海钇视科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询