#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())