import
КомандыThe import
оператор не имеет той же функциональности в MATLAB® как в Python®.
Python кода использует import
оператор для загрузки и обеспечения доступа к коду. MATLAB автоматически загружает Python при вводе py.
перед именем и именем функции модуля. Этот код показывает, как вызвать функцию wrap
в модуле Python textwrap
.
Код Python | Код MATLAB |
---|---|
import textwrap pS1 = textwrap.wrap('This is a string') | S1 = py.textwrap.wrap('This is a string');
|
Внимание
В MATLAB не вводите:
import pythonmodule
Никогда не звоните:
import py.*
Если это так, то MATLAB вызывает функцию Python вместо функции MATLAB с таким же именем. Это может привести к неожиданному поведению. Если вы вводите это import
, затем необходимо вызвать команду MATLAB:
clear import
The Python from...import
оператор позволяет ссылаться на модуль без использования полного имени. В MATLAB используйте import
функция. Этот код показывает, как ссылаться на функцию wrap
в модуле Python textwrap
. Начиная с wrap
не является функцией MATLAB, можно сократить синтаксис вызова с помощью import
функция. После вызова этой команды вам не нужно вводить пакет (py
) и модуль (textwrap
) имена.
Код Python | Код MATLAB |
---|---|
import textwrap pS1 = textwrap.wrap('This is a string') from textwrap import wrap pS2 = wrap('another string') | S1 = py.textwrap.wrap('This is a string'); import py.textwrap.wrap S2 = wrap('another string'); |
import mymod as mm |
mm = py.importlib.import_module('mymod'); % Use mm as an alias to access functionality in mymod |
Для полного описания функциональности Python обратитесь к внешним ресурсам, в частности https://www.python.org. Существуют различные версии документации Python, поэтому обязательно обратитесь к версии, соответствующей версии в вашей системе. Многие примеры в документации MATLAB относятся к функциям в стандартной библиотеке Python.
Чтобы использовать функции в стороннем или пользовательском модуле Python, обратитесь к документации по продукту поставщика для получения информации о том, как установить модуль, и для получения дополнительной информации о его функциональности.
Система MATLAB py.help
команда отображает справку Python, найденную в www.python.org/doc
. Справка по пакетам и классам может быть обширной и может не пригодиться при отображении в командном окне MATLAB.
Пакет
py.help('textwrap')
Класс
py.help('textwrap.TextWrapper')
Метод класса
py.help('textwrap.TextWrapper.wrap')
Функция
py.help('textwrap.fill')
Если MATLAB отображает сообщение об ошибке, начинающееся с Python Error:
для получения дополнительной информации см. документацию на Python.
Примечание
Заполнение клавишей Tab не отображает доступную функциональность Python.
Вы не можете использовать интерактивную помощь Python - вызывая py.help
без входных параметров - в MATLAB.
Если имя метода Python является именем запечатанного метода базового класса MATLAB или зарезервированной функции, то MATLAB переименовывает метод. Новое имя начинается с буквы x
и изменяет первую букву исходного имени на верхний регистр. Например, MATLAB переименовывает метод Python cat
на xCat
. Список зарезервированных методов см. в разделе Методы, которые изменяют поведение по умолчанию.
Если имя метода является ключевым словом MATLAB, то MATLAB вызываетmatlab.lang.makeValidName
для переименования метода. Список ключевых слов см. в разделе iskeyword
.
Если сгенерированное имя является повторяющимся именем, MATLAB переименовывает метод, используя matlab.lang.makeUniqueStrings
.
ФункцияВ этом примере показано, как вычислить выражение x+y
использование eval
Python команда. Прочитайте справку для
eval
.
py.help('eval')
Help on built-in function eval in module __builtin__: eval(...) eval(source[, globals[, locals]]) -> value Evaluate the source in the context of globals and locals. The source may be a string representing a Python expression or a code object as returned by compile(). The globals must be a dictionary and locals can be any mapping, defaulting to the current globals and locals. If only globals is given, locals defaults to it.
Чтобы вычислить выражение, передайте dict
Python значение для
globals
параметр пространства имен.
Создайте dict Python
переменная для x
и y
значения.
workspace = py.dict(pyargs('x',1,'y',6))
workspace = Python dict with no properties. {'y': 6.0, 'x': 1.0}
Вычислите выражение.
res = py.eval('x+y',workspace)
res = 7
Кроме того, чтобы добавить два числа без назначения переменных, передайте пустую dict
значение для globals
параметр.
res = py.eval('1+6',py.dict)
res = 7
Чтобы выполнить вызываемый объект Python, используйте feval
функция. Для примера, если образец obj
класса Python можно вызвать, замените синтаксис Python obj(x1, ..., xn)
с одной из следующих выражений MATLAB:
feval(obj,x1, ..., xn)
obj(x1, ..., xn)
MATLAB поддерживает следующие перегруженные операторы.
Символ оператора Python | Методы Python | Методы MATLAB |
---|---|---|
+ (двоичный) | __add__ , __radd__ | plus , +
|
- (двоичный) | __sub__ , __rsub__
| minus , -
|
* (двоичный) | __mul__ , __rmul__ | mtimes , * |
/ | __truediv__ , __rtruediv__ | mrdivide , / |
== | __eq__ | eq , == |
> | __gt__ | gt , > |
< | __lt__ | lt , < |
!= | __ne__ | ne , ~= |
>= | __ge__ | ge , >= |
<= | __le__ | le , <= |
- (унарный) | __neg__ | uminus , -a |
+ (унарный) | __pos__ | uplus , +a |
Следующие операторы Python не поддерживаются.
Символ оператора Python | Метод Python |
---|---|
% | __mod__ , __rmod__ |
** | __pow__ , __rpow__ |
<< | __lshift__ , __rlshift__ |
>> | __rshift__ , __rrshift__ |
& | __and__ , __rand__ |
^ | __xor__ , __rxor__ |
| | __or__ , __ror__ |
// (двоичный) | __floordiv__ , __rfloordiv__ |
+= (унарный) | __iadd__ |
-= (унарный) | __isub__ |
*= (унарный) | __imul__ |
/= (унарный) | __itruediv__ |
//= (унарный) | __ifloordiv__ |
%= (унарный) | __imod__ |
**= (унарный) | __ipow__ |
<<= (унарный) | __ilshift__ |
>>= (унарный) | __irshift__ |
&= (унарный) | __iand__ |
^= (унарный) | __ixor__ |
!= (унарный) | __ior__ |
~ (унарный) | __invert__ |