java调用matlab绘图

环境:

系统:kali linux 2017

java: 1.8

matlab:R2016b

idea:2016

1.编写matlab脚本:

drawplot.m

    %画图 自定义函数drawplot 参数 x y
    function drawplot(x, y)
    plot(x, y); %%使用matlab函数plot()作图
    grid on %网格显示
    xlabel(‘X轴值‘)
    ylabel(‘Y轴值‘)
    title(‘Java调用MatLab作图例子‘)

脚本保存到指定文件夹

在matlab命令窗口:

>> deploytool

选择Liberary Compiler

TYPE:java package

EXPORTED:选择drawplot.m

修改类名为:Plotter

点击package

文件夹下面会多出刚才的工程,里面有我们要要用的jar(xxx.jar)

在idea下新建工程:javaMatlab

libs文件夹下有两个依赖包:

---xxx.jar

---javabuilder,jar (在matlab安装目录\toolbox\javabuilder\jar\jarbuilder.jar)

package com.xh.matlab4java;

import com.mathworks.toolbox.javabuilder.MWArray;
import com.mathworks.toolbox.javabuilder.MWClassID;
import com.mathworks.toolbox.javabuilder.MWComplexity;
import com.mathworks.toolbox.javabuilder.MWNumericArray;
import plotdemon.Plotter;

/**
 * Created by root on 8/25/17.
 */
public class PlotTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        MWNumericArray x = null; // 存放x值的数组
        MWNumericArray y = null; // 存放y值的数组
        Plotter thePlot = null; // plotter类的实例(在MatLab编译时,新建的类)
        int n = 20; // 作图点数

        try {
            // 分配x、y的值
            int[] dims = { 1, n };
            x = MWNumericArray.newInstance(dims, MWClassID.DOUBLE,
                    MWComplexity.REAL);
            y = MWNumericArray.newInstance(dims, MWClassID.DOUBLE,
                    MWComplexity.REAL);

            // 定义 y = x^2
            for (int i = 1; i <= n; i++) {
                x.set(i, i);
                y.set(i, i * i);
            }

            // 初始化plotter的对象
            thePlot = new Plotter();

            // 作图
            thePlot.drawplot(x, y);
            thePlot.waitForFigures();
        }

        catch (Exception e) {
            System.out.println("Exception: " + e.toString());
        }

        finally {
            // 释放本地资源
            MWArray.disposeArray(x);
            MWArray.disposeArray(y);
            if (thePlot != null)
                thePlot.dispose();
        }
    }
}

注意:

选择 Edit Configurations

添加运行环境参数

LD_LIBRARY_PATH=/opt/Matlab/runtime/glnxa64

否则会报错:不能链接到 libmwmclmcrrt.so.9.1

至此配置完成,运行正常。

时间: 2024-12-10 03:31:35

java调用matlab绘图的相关文章

java调用matlab函数接口的两种方案

Java 调用matlab 函数接口 Java调用matlab函数接口有两种方式: l 一种是通过matlab把函数打成jar包: l 一种是把matlab编译成dll后,用C++再封装成java能支持的数据类型的dll. 注意:不论用这两种方式中的哪一种,最终部署时都需要matlab环境(MCR,在matlab安装路径下有). 1. 方式一:matlab直接打jar包 1.1. 利用matlab自带工具打jar包 1.1.1. 建立jar包 在matlab的Commond Window中输入d

java调用matlab函数

如何将实验结果在matlab中可视化呢,下面使用java语言编程,调用matlab中的函数: 本人安装的是Matlab7.11.0 (R2010a)和 Eclipse 4.2 : 1)首先设置环境变量,运行tomcat,Eclipse等都需要依靠环境变量JAVA_HOME,Path,classpath,具体的设置可以参考这里 为了使在matlab中将.m函数编译为jar包,还需要在classpath中添加: %matlabInstallRoot%\R2010a\toolbox\javabuild

使用ecilpse(Java)调用Matlab代码

1 安装java环境: http://www.oracle.com/technetwork/java/javase/downloads/index.html 下载JDK最新版本并安装,CloudSim需要运行在jdk1.6以上版本. 以jdk1.6.0_24为例,默认的安装目录为C:\Program Files\Java\jdk1.6.0_24. 设置环境变量: 新建系统变量JAVA_HOME,变量值设为JDK安装目录,即C:\Program Files\Java\jdk1.6.0_24: 在P

JAVA 调用matlab 出错总结

1.Java:Unsupported major.minor version 51.0 (unable to load class 出现该错误是由于class编译器的JDK版本高于运行期的JDK版本. 比如我在运行Tomcat servlet时出现该错误,是由于tomcat运行时是1.6的JDK,Eclipse编译时则是1.7 修改方法:保证编译器和运行期的JDK版本一致. Eclipse修改: Windows Window -> Preferences->Java -> Compile

Java中调用MatLab返回值

当在Java中使用MatLab函数时,由于语言语法的不同,Matlab返回多个数据时,想在Java中获取到并进行使用.查阅了网上资料,翻箱倒柜加上自己实战,得出方法如下: 如MatLab函数返回的是N个变量值,其中有单个的数值.一维数组.二维数组等. 在Java中,使用Object[] rs=cmatlab.matlabfun(n , ....);接受返回的参数.其中rs[k]代表返回列表中第k个返回的变量的值. 如果rs[k]是单个数值,比如Double型.则使用下面的方法转换为Java中的D

Atitit java c# php c++ js跨语言调用matlab实现边缘检测等功能attilax总结

1.1. 边缘检测的基本方法Canny最常用了1 1.2. 编写matlab边缘检测代码,保存为m文件1 1.3. 通过cli接口调用Matlab执行m文件1 1.4. 效果如图1 1.1. 边缘检测的基本方法Canny最常用了 1.2. 编写matlab边缘检测代码,保存为m文件 fprintf('Hello World'); imag = imread('C:\00edge\a.jpg');  %读取 imag = rgb2gray(imag);        %转化为灰度图 %imag_f

Windows、Linux、Web安装及调用Matlab程序完整说明(大章)

本文档详细说明了Linux下Web项目调用Matlab函数的完整操作,文章适合对Java.Linux有一定基础了解的人群(不了解也没什么,无非是多试几次).因Linux作为服务器,所以未在其上安装Matlab主程序,只安装了运行环境MCR. 本文档内所述的所有版本软件均以32位为准,JDK与MCR也使用32位.若你的系统为64位,Linux系统同样为64位,则请尽量选择使用64位版本的JDK与MCR. 由于Matlab的版本限制问题,请保证Matlab主程序和MATLABCompiler Run

安装及调用Matlab程序可能存在的问题解决办法

无法执行本地调用Matlab函数JAR包,容易出现的问题 a检查你的环境变量Path: %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; F:\Program Files\MATLAB\MATLAB Compiler Runtime\v717\runtime\win32; F:\Program Files\MATLAB\R2012a\runtime\win32;F:\ProgramFiles\MATLAB\R2012a\bin; 这是2个程序,需要都配置环境变量. b M

Matlab绘图详解

Matlab绘图 强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数.此外,Matlab还提供了直接对图形句柄进行操作的低层绘图操作.这类操作将图形的每个图形元素(如坐标轴.曲线.文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分. 本章介绍绘制二维和三维图形的高层绘图函数以及其他图形控制函数的使用方法,在此基础上,再介