关于java WEb怎么调用matlab(二)

eclipse ,Struts2开发。

提醒:如果你只需要运行m文件就可以实现功能的话就选用打包成jar包,因为下述方法需要启动matlab在matlab环境下运行

           请直接转移到我的上一篇博客,或者搜索关键词  ‘matlab java jar包 javabuild deplytool’

 

 

由于  把fMRI的预处理连接在web上==把SPM或DPABI和SPM连接到web上,但是用上一篇博客里面的打包jar包的方法,只能打包m函数文件,而SPM除了m文件还有编译后的p文件,甚至还有c文件(我觉得可以总结为这个预处理阶段必须要在matlab环境下运行),而且打包的话不能保留文件的结构信息,所以我选用了matlabcontrol包来进行处理,但是这个方法是需要打开matlab。

 

这面是使用matlabcontrol包来完成java调用matlab 的相关博客

参考博客1

参考博客2          

matlabcontrol包的下载问题,详见参考博客2,我在博主给的网址上免费下的,网址打开一会儿才会显示,如果实在打不开的话,可以在评论里告诉我,我上传到云盘上分享出来。

 

首先请在网站中配置matlabcontrol包(放在lib文件夹下,然后在eclipse里,要add 到build path)

然后我是把m代码都放在项目的根目录那里(不需要把SPM或者DPABI的代码复制到网站中,因为之后直接在matlab中运行了)

(使用的是strust2框架,嗯,网站的结构如下)

然后使用java代码来调用这些代码(首先说明我的trigger是专门用来调用别的函数的,所以我只用调用trigger文件就可以完成我的功能)

test1:



import matlabcontrol.*;
	
public class test_connetction {
	
	public static void main(String args[]) throws Exception {

        try {
            MatlabProxyFactory factory = new MatlabProxyFactory();
            MatlabProxy proxy = factory.getProxy();
            Object[] result = proxy.returningFeval("trigger",1,"D:/A1021","D:/matlab_func");


        } catch (Exception e) {
            // TODO: handle exception
        	System.out.println("exception");
        }

    }

}

请仿照上述方法修改代码,具体的含义在参考博客里面有所涉及。

目测只需要修改得到result 的那一行

"trigger"---调用的函数名

1----返回的参数个数

然后后面都是这个函数所需要的参数

亲测有效。

忽略红字,最后的一行表示他已经开始跑了,但是呢,我虽然在运行之前已经打开了一个matlab,然而他还是固执得自己又打开了一个matlab,emmm,这就是其中一个参考文件中提到的问题。

直接使用参考文献1中对应的代码,修改部分内容,还有注意,监听器要在eclipse新建一个监听器,不能直接在一个类里面写哦。

实现的效果是,我运行网页时,matlab就会自动打开了,然后后续matlab就默默运行啦~

非常感谢乐于分享的博主们!! 毕业论文致谢预定

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值