Java中使用MATLAB作图
来源:互联网 发布:e店宝软件打不开 编辑:程序博客网 时间:2024/05/17 03:05
最近做一个项目,需要很多进行很多信号处理——小魏就是学软件的,对信号处理简直是个小白,最简单的实现就是傻瓜似的调用MATLAB的各种工具箱,达到目的就行。
同时,MATLAB是种解释性语言,执行效率比较低,不适用与通用编程平台,同时图形化编程也非常不方面,一举两得的是能在其他语言(VC++\Java)程序中调用MATLAB编写的函数。
好,牛刀小试,尝试在Java中调用MATLAB!
1)实验环境
机器中装有Eclipse和Matlab,并配置好环境变量。
小魏装的是Eclipse 3.7.1 和Matlab7.11.0 (R2010b)。当然要装有JDK,Eclipse的配置不多说了,网上有许多,至于Matlab,最好在classpath中添加:
%matlabInstallRoot%\R2010b\toolbox\javabuilder\jar\javabuilder.jar
这里说“最好”,是因为不添加,只在项目中引用,貌似也是可行的。
P.S. 如果是VC++中调用MATLAB,一定要在path中添加:
%matlabInstallRoot%\R2010b\bin\win32
2)将Matlab的m文件包装成java类
这里我们使用Matlab自带的例子,在路径
%matlabInstallRoot%\R2010b\toolbox\javabuilder\Examples\PlotExample
下,此处是m文件:
- function drawplot(x, y)
- plot(x, y); %%使用matlab函数plot()作图
在MATLAB中Command窗口中输入deploytool调出部署工具DeploymentTool。新建一个工程,输入工程名plotdemo.prj,选择路径,并选择Target为 Java Package。
在MATLAB右侧会出现我们新建的工程。
将刚刚编写的m文件直接拖拽进去,并重命名类名为plotter,点击Build编译:
完成之后(过程有点长~)就会在我们选择的路径下看到 plotdemo的文件夹。
3)在java工程中调用matlab生成的类
新建工程TryMatlabPlot,并右键在Build Path中引用相关的包
%matlabInstallRoot%\R2010b\toolbox\javabuilder\jar\jarbuilder.jar
以及刚刚生成的plotdemo\distrib\plotdemo.jar
Java类文件的代码为:
- package lwei.test.matlab;
- import com.mathworks.toolbox.javabuilder.*;
- import plotdemo.*;
- /***
- * 通过调用matlab中的函数在窗口中作图
- * @Author: lwei
- */
- class createplot
- {
- public static void main(String[] args)
- {
- MWNumericArray x = null; //存放x值的数组
- MWNumericArray y = null; //存放y值的数组
- plotter thePlot = null; //plotter类的实例
- 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();
- }
- }
- }
运行程序,结果如图:
源码下载链接:http://download.csdn.net/detail/xiaowei_cqu/3877268
(转载请注明作者和出处:http://blog.csdn.net/xiaowei_cqu 未经允许请勿用于商业用途)
- Java中使用MATLAB作图
- 【Matlab】Java中使用MATLAB作图
- MATLAB作图
- matlab 作图
- matlab里作图使用不同的颜色
- matlab里作图使用不同的颜色
- matlab里作图使用不同的颜色
- MATLAB中作图使用set(gca,'xticklabel',{' '})时x轴重复出现解决办法
- 《java与MATLAB混合编程》之《java调用MATLAB作图》
- matlab 画图中线型及颜色设置 matlab 作图 标注
- matlab 画图中线型及颜色设置 matlab 作图 标注
- matlab从simulink导出到工作空间变量中作图
- MatLab作图基本
- matlab作图标记
- Matlab交互作图
- matlab函数作图
- matlab 三维作图
- Matlab作图语句小结
- 【解决方案】Http请求报错
- 白鸡问题
- 使用套接字Socked实现网络通讯(网络编程)
- JS解析json数据(如何将json字符串转化为数组)
- 数字信号处理A
- Java中使用MATLAB作图
- Orcale 12C 安装
- UI组件之TextView及其子类(三)ToggleButton和Switch
- modal 控制器的样式
- java 正则(4) 不常用 / 贪婪匹配 / 非捕获组 / 向前引用 / flag 简写
- 文章标题
- 菜鸟学习嵌入式 问题笔记之 关于-/bin/sh: 命令:not found的解决办法
- Android 实现沉浸式状态栏
- 27个提升效率的iOS开源库推荐