创建一个 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 必须可用于系统,即必须安装它。
我最近开始担任学生助理,我必须在 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 必须可用于系统,即必须安装它。