创建一个python脚本来模拟Matlab文件并存储结果

时间:2018-10-15 10:16:56

标签: python matlab simulink

我最近开始担任学生助理,我必须用Pycharm(python)编写脚本,这对我来说是新事物。

我的任务是编写一个python脚本,该脚本从服务器获取一个Matlab文件(.m文件),执行该脚本并将该文件的结果存储在另一个文件夹中。

我创建了一个函数,该函数可以从服务器返回matlab文件的路径,如下所示。

def get_next_job() -> Path:
    host = '127.0.0.1'
    port = 2000

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.connect((host, port))
    s.sendall(json.dumps({"task_name": "next_simulation_file",   "host_name": socket.gethostname()}).encode())
    received = s.recv(1024)
    m = received.decode()
    message = json.loads(m)
return Path(message["next_simulation_file"])

现在,我的问题是如何从python初始化matlab来模拟此文件并将结果存储在某个地方。

我非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我认为您可以为该任务使用子流程模块。让我们假设您可以通过命令matlab -nodisplay -nosplash -r matlab_command运行/执行MatLab脚本。

然后您应该在脚本中添加一行:

import subprocess
run_command='matlab -nodisplay -nosplash -r matlab_command'
subprocess.call(run_command, shell=True)

我认为subprocess将等待MatLab完成并在此之后继续执行脚本。

子进程还具有方法check_call,该方法可用于检测命令是否有效。无论如何,MatLab必须可用于该系统,即必须安装它。