Расширенные темы

Общие сведения о Python и MATLAB import Команды

The import оператор не имеет той же функциональности в MATLAB® как в Python®.

Загрузка модуля Python в MATLAB

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

Для полного описания функциональности 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

Если имя метода Python является именем запечатанного метода базового класса MATLAB или зарезервированной функции, то MATLAB переименовывает метод. Новое имя начинается с буквы x и изменяет первую букву исходного имени на верхний регистр. Например, MATLAB переименовывает метод Python cat на xCat. Список зарезервированных методов см. в разделе Методы, которые изменяют поведение по умолчанию.

Если имя метода является ключевым словом MATLAB, то MATLAB вызываетmatlab.lang.makeValidName для переименования метода. Список ключевых слов см. в разделе iskeyword.

Если сгенерированное имя является повторяющимся именем, MATLAB переименовывает метод, используя matlab.lang.makeUniqueStrings.

Вызов Python- eval Функция

В этом примере показано, как вычислить выражение 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

Выполнение объекта Callable Python

Чтобы выполнить вызываемый объект Python, используйте feval функция. Для примера, если образец obj класса Python можно вызвать, замените синтаксис Python obj(x1, ..., xn) с одной из следующих выражений MATLAB:

feval(obj,x1, ..., xn)
obj(x1, ..., xn)

Как MATLAB представляет операторов Python

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__

См. также

|

Похожие темы

Внешние веб-сайты

Для просмотра документации необходимо авторизоваться на сайте