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__ |