JAVA和MATLAB混合编程


ps:一直以来,就想体验一把混合编程了,后来做课设,老师恰巧提到了这个点,于是趁着这次课设,瞎捣鼓了一番。

下对正确版本的MATLAB

(1)这一步就弄了好久,看了许多网友文章,感觉他们都挺容易的,哎,但到了自己身上就不灵了。其中,最多的一个回答就是jdk版本的问题,应该是jdk从1.8换成jdk1.7版本。在一番操作后,jdk换成了1.7但是,还是不行,一打包,就报错Test checkout of feature 'Compiler' failed

(2)在这里,再次感谢某位博友的文章(时间一久就忘了),他也遇到这个问题,并解决了!其实,就是matlab本身的问题,相信很多matlab都是(嗯嗯,对),毕竟正版很贵,但破解的matlab有些问题的。

matlab所需文件

ps:万事有意外,并不能保证百分百正确,所以各位道友在实践时,牢记备份,以便还原!!!

(3)我用的matlab 2014b,在matlab的安装目录下:MATLAB\R2014b\bin\win64,找到libmwservices.dll文件,用链接中libmwservices.dll 替换这个文件。

(4)然后运行MATLAB,此时MATLAB会提醒没被激活的状态,按照提示选择用链接中的license文件激活,并选择附件中的license.lic文件激活

MATLAB R2014a Patch软件替换的文件有:libmwservices.dll ;compiler.dll;mcc.exe


开始混合编程之旅

(1)经过上面操作后,我成功解决了我的问题。还没解决的道友,哎~从其他地方找找解决办法吧。下面参考网上例子,编写一个简单的m文件,用于画一个二次函数图像

function test(x1)
x=-x1:0.1:x1;
y=x.^2;
plot(x,y)

(2)在matlab窗口输入deploytool,回车,此时会弹出一个编译窗口,选择编译成library:
在这里插入图片描述

(3)如图:按步骤,先选择打包成java包,选择要打包的m文件,输入打包后的名字
在这里插入图片描述
(4)这里是选择编译后生成哪些类,默认生成Class1,当你函数很多时候,可以通过右边添加按钮生成多个类,在最后一步我选择的是test.jar
在这里插入图片描述
(5)经过等待,编译完成

在这里插入图片描述

(6)生成文件默认在你函数的路径下,默认生成这些文件,这里面有着函数的详细说明,以及java如何调用,所以如果不知道java怎样调用,可以看for_redistribution_files_only\doc\html\test下的html文件,主要是默认生成的Class1.html,每个人都有着不同的需求,所以用法就千差万别,即使百度,也很难找到完全一样的例子,所以还是需要阅读文件。
在这里插入图片描述
这是我用java调用这个函数的代码:

package util;

import com.mathworks.toolbox.javabuilder.MWException;
import javaCallMatlab.*;
public class TestJavaAndMatlab {
 public static void main(String[] args) throws MWException {
	Class1 c = new Class1();
    double t =5;
	c.test(t);	
}
}

此时,会生成一个和matlab一样的窗口
另外,一般处理图像还需要配合java中AWT和Swing组件,一起使用,生成窗口
在这里插入图片描述

  • 8
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

legendaryhaha

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值