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

Create a python script to simulate a Matlab file and store results

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

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

我创建了一个函数,其中 returns 来自我要模拟的服务器的 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 以模拟此文件并将结果存储在某处。

非常感谢您的帮助。

我认为您可以使用子流程模块来完成任务。让我们假设您可以通过命令 run/execute 您的 MatLab 脚本:matlab -nodisplay -nosplash -r matlab_command.

那么你应该在你的脚本中添加一行:

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

我想subprocess会等待MatLab完成,之后会继续执行脚本。

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