我是靠谱客的博主 热情雪碧,这篇文章主要介绍Go语言调用python调用matlab,实现matlab并行运行,现在分享给大家,希望可以做个参考。

1、Go语言利用exec可以调用python脚本,并通过websocket把结果传送给前端。注意点1:如何实现cd到指定目录下运行python脚本,cmd.Dir = “E:test”,进入python脚本所在目录。注意点2:python脚本必须与matlab的.m文件在同一目录下。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
matlabPath := "E:\test\Analysis.m" cmd := exec.Command("python", "test1.py", dataPth, jsonPth, files, upDown, channel, dataSource, matlabPath) cmd.Dir = "E:\test" cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true} err := cmd.Start() if err != nil { log.Error("file service.configure.go, func err2 :", err, ", cmd failed", "cmd :", cmd) return } else { errWait := cmd.Wait() if errWait == nil { return } else { pictureStringSlice := this.getPictureFile(filesPath) err := websocket.JSON.Send(ws, pictureStringSlice) if err != nil { log.Error("err", err) } } }

2、python如何调用matlab,利用python的pymatbridge模块可以实现,并且可以并行调用matlab。若保存的图片缩小了,则添加mlab.set_plot_settings(width = 1200,height = 900,inline = True)设置图片大小。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from pymatbridge import Matlab import sys if __name__ == '__main__': dat = sys.argv[1] json = sys.argv[2] picture = sys.argv[3] upDown = sys.argv[4] channel = sys.argv[5] dataSource = sys.argv[6] pathMat = sys.argv[7] print pathMat mlab = Matlab() mlab.start() mlab.set_plot_settings(width = 1200,height = 900,inline = True) res = mlab.run_func(pathMat,{'arg1':dat ,'arg2':json ,'arg3':picture ,'arg4':upDown,'arg5':channel,'arg6':dataSource})

pathMat是matlab主程序所在目录E:testAnalysis.m,arg1~arg6是传送给matlab的参数。
3、matlab接收参数

复制代码
1
2
3
4
5
6
7
8
%% MATLAB function retVal = Analysis(args) strMatFileName = args.arg1; strJsonFileName = args.arg2; strOutputPath = args.arg3; strLink = args.arg4; strPhyChannel = args.arg5; strInputPoint = args.arg6;

最后

以上就是热情雪碧最近收集整理的关于Go语言调用python调用matlab,实现matlab并行运行的全部内容,更多相关Go语言调用python调用matlab内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(101)

评论列表共有 0 条评论

立即
投稿
返回
顶部