我将这个变量保存为.mat文件。然后,我在python中运行一个matlab脚本,该脚本运行一个以"latent_var“作为输入的经过训练的克里金模型。kriging模型(在matlab中)输出"comp_vals",这是一个1x25的双精度变量,然后我将其另存为.mat文件并在python中打开。问题是这个过程需要一段时间(大约1分15秒),但我需要它在3秒内完成。
有没有其他方法可以让我加速这个过程?
这是他们的python代码:
import scipy.io as sio
import numpy as np
sio.savemat('latent_vars.mat', {'latent_vars':noise})
import matlab.engine
eng = matlab.engine.start_matlab()
eng.Kriging_to_python(nargout=0)
eng.quit()
comp_vals=sio.loadmat('comp_vals.mat')这是matlab代码:
%Load matlab workspace with kriging model
krig_workspace=load('C:\Users\User\Documents\MATLAB\krig_posttrain_workspace2.mat');
%Import latent variable values from python
latent_from_python=load('/Users/User/Documents/project/Interactive Framework/latent_vars.mat');
latent_vars=latent_from_python.latent_vars;
latent_vars=single(latent_vars);
%Save kriging model from workspace as new variable
krig_model=krig_workspace.dmodel;
%Run kriging model with latent variables generated from python
[comp_vals MSEpredict] = predictor(latent_vars, krig_model);
comp_vals=transpose(comp_vals);
save('/Users/User/Documents/project/Interactive Framework/comp_vals.mat','comp_vals');如有任何帮助或见解,我们将不胜感激!谢谢。
发布于 2021-09-22 02:18:01
除了Cris Luengo的nice comments:
。
可以使用-nojvm选项进一步改进
matlab -batch scriptname (因为,AFAIU,您不使用相关功能)。那是,C:\Program Files\MATLAB\R2021a\bin>matlab.exe -nojvm -batch "disp(1+1)“
应该会快一点(在我的电脑上大约需要3秒),与
C:\Program Files\MATLAB\R2021a\bin>matlab.exe -batch "disp(1+1)“
(在我的电脑上大约需要6秒)。
https://stackoverflow.com/questions/69276250
复制相似问题