Создайте скрипт Python для имитации файла Matlab и сохранения результатов

1

Я недавно начал работать ассистентом ученика, и мне нужно написать сценарий в 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, чтобы имитировать этот файл и где-то хранить результаты.

Я очень благодарен за помощь.

Теги:
simulink

1 ответ

0

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

  • 0
    Могу ли я заменить «matlab» и «matlab command» переменными, которые есть в моем скрипте? Например, у меня уже есть переменная matlab_path, которая имеет путь к matlab.exe, и переменная res, которая имеет путь к файлу matlab, который необходимо смоделировать. Я хотел бы использовать эти две переменные, чтобы компьютер мог определить, какую версию Matlab он должен использовать и какой файл Matlab он должен имитировать.
  • 0
    Я думаю, что вы должны иметь возможность запустить свой исполняемый файл как /path_to_your_matlab/matlab $options matlab_script . Не знаю, как это работает в Windows, но также должно работать, если имя исполняемого файла содержит весь путь как C:\\...\\matlab.exe . Сложной частью могут быть файлы * m, расположенные удаленно на каком-либо сервере - не уверен, что MatLab может их напрямую запустить. Возможно, вам сначала нужно скачать скрипт, установить его в каком-то месте и запустить как локальный скрипт.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню