import Команды 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
Питон 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.
Примечание
При заполнении вкладки не отображаются доступные функциональные возможности Python.
Нельзя использовать интерактивную справку Python - вызов py.help без входных аргументов - в MATLAB.
Если имя метода Python является именем запечатанного метода базового класса MATLAB или зарезервированной функции, то MATLAB переименовывает метод. Новое имя начинается с буквыx и изменяет первую букву первоначального имени на прописную. Например, MATLAB переименовывает метод Python cat кому xCat. Список зарезервированных методов см. в разделе Методы, изменяющие поведение по умолчанию.
Если имя метода является ключевым словом MATLAB, то MATLAB вызываетmatlab.lang.makeValidName для переименования метода. Список ключевых слов см. в разделе iskeyword.
Если созданное имя является повторяющимся, MATLAB переименовывает метод с помощью matlab.lang.makeUniqueStrings.
eval ФункцияВ этом примере показано, как вычислить выражение x+y использование Python eval команда. Прочитайте справку для 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.Чтобы вычислить выражение, передайте Python dict значение для globals параметр пространства имен.
Создание Python dict переменная для 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__ |