精华内容
下载资源
问答
  • java与matlab混合编程jsp调用matlab网页显示fig
  • 网上Java+matlab混编的挺多,大多数实例也都能实现出来,但是将matlab生成出来Figure显示在jsp页面中并配合WebFigure实现的例子却很少,所以我将自己的尝试结果详细的写出来。 一从Java和Matlab混合编程 1.1环境...
    例子简介
    网上Java+matlab混编的挺多,大多数实例也都能实现出来,但是将matlab生成出来Figure显示在jsp页面中并配合WebFigure实现的例子却很少,所以我将自己的尝试结果详细的写出来。

    一从Java和Matlab混合编程

    1.1环境配置

    我采用的是Java、jdk1.6.0_45、Eclipse、Matlab2013a,都是64位:

    为什么我要强调环境配置都一样呢,首先,我之前Matlab用的是2013a32位的,会报错,Java和Matlab混编要求环境是统一的,同时我之前jdk用的是1.7.0_75,画不出图来,因为matlab必须联合1.6的jdk才能画出图来。

    1.2编写plotsin.mplotcos.m文件


    1.3编译写好的两个函数制作一个java(.jar)complie the pltosin function as a java Package)如下图所示,使用deploytool命令,然后build


    生成的文件夹



    1.4 新建一个 Java Project工程,工程名JavaUseMatlab


    右键点击工程名,添加(.jar)包


    java build Path的Libraries下,点击Add External JARS添加javabuilder.jar和建立的matlabplot.jar,如下图所示


    javabuilder.jar和matlabplot.jar的位置如下图



    1.4 新建个.java文件,右键工程名JavaUseMatlab,如下图所示



    并在,MathPlotTest.java文件编写程序


    1.5 Run As程序Java Application


    结果如下图所示


    这个过程就完成,这个例子网上有很多人做,我主要是在后面将生成的Figure,用JSP发布在网页上。

    二 Java和Matlab混编 将生成figure发布网页上,直接使用JSP中的网页标签

    以绘画的正弦曲线为例,进行说明

    2.1 绘制正弦曲线函数plotsin.m


    2.2 编译写好的plotsin函数制作一个java(.jar)complie the pltosin function as ajava Package)如下图所示,使用deploytool命令,然后build



    生成的目录文件如下图所示



    2.3新建一个Dynamic Web Project

    Eclipse+Tomacat7.0.59+JDK1.6.0_45


    右键点击建立的myweb工程,建立一个jsp文件


    2.4右键myweb工程,点击Build Path下面的 Configure Build  Path


    在libraries下面,Add External JARs,将由matlab 生成的plotWeb.jar添加进来;plotWeb.jar在plotWeb的disturb文件夹下,以及matlab安装文件下的javaBuilder.jar文件,文件路径:D:\Program Files\MATLAB\R2013a\toolbox\javabuilder\jar\win64




    同时将plotWeb.jar和javaBuilder.jar,拷贝到myweb工程下,WEB-INF下lib文件夹下面,如下图。


    同时拷贝webfigures.tld文件,文件目录

    D:\ProgramFiles\MATLAB\R2013a\toolbox\javabuilder\webfigures\ 到myweb的

    WEB-INF文件夹下,如下图所示。


    最后的工程项目机构图如下图所示:



    2.5在生成的JSP文件下头部添加相应的引用项

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

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

    引用WebFigure库,以及自己编写的Matlab类库,另外引用

    com.mathworks.toolbox.javabuilder.*,也是必须的,因为其中包含一些Errors定义以及必要的类和接口定义。

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

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

    <%@ page import="com.mathworks.toolbox.javabuilder.internal.*"  %>

    <%@ page import="plotWeb.MathPlotSin"%>

    最后再body体内添加代码:如图所示



    2.6修改目录下web.xml文件,加入如下代码


    2.7部署myweb项目到Tomcat,启动Tomcat

    在浏览器中输入如下网址:  http://127.0.0.1:8080/myweb/Test.jsp



    展开全文
  • 网页暂时用的静态页面,也就是html css js等,想知道如何用网页作为matlab的GUI,例如网页中一个button调用matlab函数等  查了一下网上的,最好的应该是.net实现链接matlab生成的动态库,但在VS里建立网项目中...
  • 目的:在一个PHP网页调用matlab代码实现一些功能,比如处理数据,或者画图~ 平台: linux+apache+php的服务器 实现: 正常情况下,我们在Linux客户端运行matlab代码时候 一般都是在terminal执行  $ matlab -...

    目的:在一个PHP网页中调用matlab代码实现一些功能,比如处理数据,或者画图~

    平台: linux+apache+php的服务器

    实现: 正常情况下,我们在Linux客户端运行matlab代码时候 一般都是在terminal执行 

    $ matlab -nodesktop -nosplash -nodisplay -r "draw" (draw.m 这里假设是用来产生一个eps的图)

    draw.m:

    file=importdata('file.txt');
    plot(file(:,1),file(:,2));
    print('-deps2','-r300','figure.eps');
    quit


    我们在linux的环境下的中的某个用户demo_user,只要对MATLAB有执行权限(755)的话,是肯定能够执行的,并产生相应的figure.eps文件;

    但是,如果你从网页端来访问并执行这样的代码的话可能会遇到的问题:

    <?php
    $command="matlab -nodesktop -nosplash -nodisplay -r \"draw\"";
    system($command);
    ?>

    第一: 执行上述代码的话,你会发现这句命令根本没有执行, $out= system($command, $val),$ val是反应有没有执行成功的,0是成功,1是失败;

    那么怎么办呢? 

    首先就是要检查 php的配置是否支持调用外部命令,没开启的话,开启一下,这个网上有很多教程教如何开启php支持调用外部命令功能;

    然后就是要来看为什么执行不了matlab程序, 将$command改为

    $command="matlab -nodesktop -nosplash -nodisplay -logfile log.txt -r \"draw\" 1>out.txt 2>error.log"; 

    来看到底出了什么错误导致php调用matlab失败的?

    打开log.txt, 如果,matlab被启动的话,会有一些警告,说明matlab已经启动过了,但是为什么就执行不了你的代码呢 ?

    后来我把2>errorl.log输出来,也就是把Matlab运行的error输出来看发现: fatal error on startup. MATLAB_PREFDIR must be an absolute path. Cannot set preferences directory to the relative path。 路径错了,应该是被调用的外部命令system的配置问题引起的; 后来我就在运行Matlab 命令前,加入 export MATLAB_PREFDIR=<your preference path>, 切记 一定要输入全路径。

    <?php
    $command="export MATLAB_PREFDIR= <your preference path>; matlab -nodesktop -nosplash -nodisplay -r \"draw\"";
    system($command);
    ?>
    加了路径之后就能够正常运行了。It works!

    2016年11月24日


    展开全文
  • 1.ubuntu16.04安装matlab参考网页:https://www.jianshu.com/p/78605a1345a8 写的非常好,不过在利用crack内readme里面standalone进行破解时,普通安装时,只需要standalone第一行破解秘钥即可 创建matlab应用程序...

    1.ubuntu16.04安装matlab参考网页:https://www.jianshu.com/p/78605a1345a8

    写的非常好,不过在利用crack内readme里面standalone进行破解时,普通安装时,只需要standalone第一行破解秘钥即可

    创建matlab应用程序时,退出vim编辑时,按Esc,后再按shift,输入:wq

    2.ubuntu16.04python2.7调用matlab2015b

    参考网址:https://ww2.mathworks.cn/help/matlab/matlab_external/install-the-matlab-engine-for-python.html?ue

    测试网址:https://blog.csdn.net/sunny_xsc1994/article/details/79254196

    3.注意python中的矩阵作为参数,传入MATLAB函数,需要对数据进行转化。将数据转化成list形式,a=a.tolist()

    4.python调用matlab出错:Error using sparse Index into matrix must be positive.

    由于python索引从0开始,而matlab从1开始,所以涉及到用索引的,需要转化

     

    展开全文
  • 我有一个网页调用matlab的毕业设计问题 ,请问有大神知道这个的吗
  • 考虑到算法模型较多、计算量较大、图形化处理等问题,利用原有的C#软件开发平台,没有提供足够的工具函数与计算能力,因此采用matlab与.net混编模式。 1. Matlab.net混编技术简介 MATLAB作为一款功能强大、效率高...

    考虑到算法模型较多、计算量较大、图形化处理等问题,利用原有的C#软件开发平台,没有提供足够的工具函数与计算能力,因此采用matlab与.net混编模式。

    1.  Matlab.net混编技术简介

    MATLAB作为一款功能强大、效率高、交互性好的可视化高级计算机语言,在数值计算、自动控制、数字信号处理、图形处理、仿真、神经网络、小波分析等各个领域有着广泛的应用。MATLAB程序接口的出现,解决了matlab与其他程序之间的数据交换问题,通过接口与其他编程环境交互,各取所长,充分发挥MATLAB计算的优点所示。

    通过使用MATLAB Builder NE,将MATLAB函数封装入.NET中类的方法,这些类就可以像其他托管代码一样被.NET环境下的所有语言调用,例如C#、VB.NET、J#、C++.NET、F#等语言,甚至是网络程序也可以调用,例如ASP.NET。

    2.  混合编程的实施

    1.配置编译平台

    选取matlab2014a和vs2012,均为64位设置,同时需要注意的是一般matlab平台的版本要高于vs。

    2.编写运行.m文件

    创建名为test1.m的函数文件,功能是实现求平均数:

    function [mean] =test1( x)

    n=length(x);

    mean=sum(x)/n;

    end

     

    3.创建动态链接文件

    在命令窗口输入并运行deploytool:

    跳出编译选择窗口,选择library complier:

    选择.Net Assembly,添加需要编译的函数文件,可更改组件名称及类名,参数设定后,选择package。

    动态链接库文件创建好后,会跳出弹窗,我们需要的动态链接库文件在for_redistribution_files_only文件夹中:

    4.创建空网站

    打开vs2012,文件——新建——网站——Asp.net空网站,创建一个空网站;

    右击网站项目名称,添加web窗体;

    添加该网页前台内容,设置一个Button控件和一个Textbox控件:

      <asp:Button ID="Button1" runat="server" Text="计算" οnclick="Button1_Click"/>

        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

    添加网页后台内容:

    1)命名空间添加,共三个,两个固定,一个是你自己命名的动态链接库组件名称:

    using MathWorks.MATLAB.NET.Arrays;

    using MathWorks.MATLAB.NET.Utility;

    using test1;

    2)添加函数内容:

    protected void Button1_Click(object sender, EventArgs e)

        {

            MWNumericArray arr1 = new int[] { 1, 2, 3, 4, 5 };

            Class1 Tc = new test1.Class1();

            MWArray result = Tc.test1((MWArray)arr1);

            this.TextBox1.Text = result.ToString();

        }

    5.添加matlab引用

    右击项目名称,添加引用,在引用管理器里选择浏览,添加两个引用:

    1)一个引用是在你的matlab安装目录下的MATLAB\MATLAB Production Server\R2014a\toolbox\dotnetbuilder\bin\win64\v2.0,选择后添加到列表中;

    2)另一个引用是在你创建的m文件动态链接库文件所在,也就是for_redistribution_files_only文件夹中的dll文件;

    最后将两个引用添加后,确定即可。

    6.环境配置

    最最重要的一环来临了,之前这个步骤走了好多弯路,因为一旦网页调试运行,就会出现初始化值错误的问题,经过不懈的努力终于找到了解决的办法,网上提供的很多办法也尝试过,可是木有用。。。。

    因为我的matlab和vs均是64位的,所以创建的dll也是64位的,但是vs2012默认只会调用其32位版本,因此需要修改IIS配置,方法如下:

    通过修改注册表来实现vs调用x64版IIS Express;

    Cmd-regedit后到注册表界面:

    HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\WebProjects,右击——新建——DWORD,名称为“Use64BitIISExpress”,并修改属性值为“1”。

    7.运行网站

    关掉vs后,重新打开运行网站,可以实现网页调用成功。

    8.如果后来再打开运行项目时,出现同样的错误,可以进行一下操作(打开vs节目,网站——IIS配置,估计是为了重新启动IIS配置)。

    转载于:https://www.cnblogs.com/xyrbk/p/6770487.html

    展开全文
  • php调用matlab环境的可执行文件在网页显示结果(失败)问题实验平台php代码尝试的解决方案用户权限的问题查阅php.ini配置文档给予php运行的用户和本机用户权限补充:sudo介绍更改php版本添加ctf文件 问题 用C++调用...
  • matlab程序是一个关于灰色关联度计算的,现在大概知道框架是这样,现在问题是网页怎么调用matlab程序
  • C#中调用matlab模块

    千次阅读 2012-09-04 22:30:13
     昨天樊小弟bg大哥夜宵,托大哥我帮他解决在网页调用matlab模块的问题,考虑到我毕业设计也是用matlab和c#,今天闲来无事,查阅了下资料,终于找到解决方法。写点东西以防以后找不到。 1.在matlab中编写.m文件。...
  • 应用idea通过网页接收用户上传的图片,怎么调用matlabcontrol的方法连接matlab调用脚本文件并向脚本里传递照片,然后将matlab的值传递给java。 如果可以的话能不能帮我把matlabcontrol里的方法写成汉语的 写几个...
  • 接下来的问题就是 如何保存这个图片,使得它可以被服务端调用,传到网页上。 方法一: 用MATLAB的saveas函数,这个办法可以在MATLAB中实现,但是当用Python调用时,就行不通了,我也不知道为啥。哎~~~ 方法二 用...
  • 使用php在网页执行matlab

    千次阅读 2012-09-11 23:21:42
    通过php调用linux命令,可以实现远程调用matlab. ...以下代码实现了在网页输入matlab命令并显示执行结果。注意:如果不加-nodisplay选项,会出现" no display specified"的警告,当然可以在执行matla
  • 由于我们做的是检索系统,所以我们用asp.net(c#)做了网页,但是算法的实现是在matlab下,所以我们不得不用matlab生成动态链接库dll,然后用c#调用matlab,单单这个配置问题就搞了我们一个多星期,不过还是顺利解决...
  • 我问来自俄罗斯的实习生,你对网上争辩MATLAB和Python谁好谁坏有什么看法。实习生表示他不会Python,但是只要能...他说,Python的某些库比MATLAB要好用,比如做网页解析的BeautifulSoup,MATLAB里面虽然有轻量级的w...

空空如也

空空如也

1 2 3
收藏数 52
精华内容 20
关键字:

matlab调用网页

matlab 订阅