эквивалент скриптов matlab в python

#python #matlab

#python #matlab

Вопрос:

Я недавно перешел с matlab на python, и мне действительно не хватает того, что matlab называл scritps. Скрипт похож на функцию, в которой нет переменных, которые вы вводите или выводите. Вместо этого он видит рабочую область, в которую вы ее вызываете, а затем все, что он создает, становится доступным в рабочей области после ее запуска.

(Вот видео, представляющее концепцию скриптов matlab)

Например, если ваше рабочее пространство изначально является объектами a , b и c . Если вам нужна функция, которая получает d из a , b и c вы могли бы спроектировать ее так, чтобы вы могли вызывать ее как:

 d = MyFunc(a,b,c)
 

В качестве альтернативы, если бы это был скрипт, вы могли бы вызвать его с помощью:

 MyScript
 

Это полезно, потому что, если у вас есть код, который вы хотите разделить, но который выполняется во всей рабочей области, вам не нужно писать

 d = MyFunc1(a,b,c)
e = MyFunc2(a,b,c,d)
f = MyFunc2(a,b,c,d,e)
 

но вы могли бы вместо этого написать

 MyScript1
MyScript2
Myscript3
 

[Это чрезвычайно полезно для обработки научных данных, где у вас может быть большая рабочая область с большим количеством переменных — и вы хотите выполнять множество операций, требующих большого количества этих переменных, — но вы хотите разделить их на блоки кода, которые вызываются основным файлом, чтобы его было легче читать]

Комментарии:

1. Я использую код Visual Studio. Он поставляется со встроенным блокнотом Jupyter, который похож на интерактивную оболочку Matlab. Вы можете запускать скрипты или фрагменты кода с функцией, называемой cells (аналогично cells Matlab). Они будут использовать переменные из интерактивного рабочего пространства. Так что я не думаю, что чего-то не хватает по сравнению с Matlab.

2. Как девушка из MATLAB, я очень хорошо понимаю, чего вы хотите, но я не уверен, что люди из Python поймут это. Я предлагаю вам показать некоторые дополнительные примеры кода и как это работает. Т.е. Создайте простой скрипт (и, возможно, объясните, что он сохраняется в отдельном файле). Затем покажите, как вы можете вызвать его из функции (или другого скрипта), и покажите, что теперь у вас есть все переменные, созданные в скрипте, и вы можете их использовать. К сожалению, я недостаточно знаю Python, чтобы ответить на этот вопрос самостоятельно.

3. Будучи знакомым с Python, но не с Matlab, это звучит смутно, как будто вы хотите упаковать свой код Python в модуль. Это стандартная практика для повторно используемого кода, и она хорошо документирована (хотя лучшие практики значительно изменились с течением времени, поэтому убедитесь, что вы прочитали что-то достаточно свежее и официальное).

Ответ №1:

Для запуска скрипта, подобного matlab, из main_file.py:

exec(open('MyScript1.py').read())