Создайте скрипт Python для имитации файла Matlab и сохранения результатов - PullRequest
0 голосов
/ 15 октября 2018

Я недавно начал работать ассистентом студента, и мне нужно написать скрипт на 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"])

Теперь мой вопрос заключается в том, как инициализировать matlab из python для имитации этого файла и сохранения результатов где-то.

Я был бы очень признателен за помощь.

1 Ответ

0 голосов
/ 15 октября 2018

Я думаю, что вы могли бы использовать модуль подпроцесса для задачи.Предположим, вы можете запустить / выполнить скрипт 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 должен быть доступен для системы, т. Е. Он должен быть установлен.

...