概述
1、Go语言利用exec可以调用python脚本,并通过websocket把结果传送给前端。注意点1:如何实现cd到指定目录下运行python脚本,cmd.Dir = “E:test”,进入python脚本所在目录。注意点2:python脚本必须与matlab的.m文件在同一目录下。
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)设置图片大小。
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接收参数
%% 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,实现matlab并行运行所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复