Усовершенствованные темы

Понимание Python и MATLAB import Команды

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

Сократите имена классов или имена функций

from...import Python оператор позволяет вам сослаться на модуль, не используя полностью определенное имя. В 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, обратитесь к своей документации по продукту поставщика для получения информации о том, как установить модуль и для получения дополнительной информации о его функциональности.

py.help MATLAB команда отображает справку 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

Выполнение вызываемого объекта 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__uminusA
+ (унарный)__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__

Смотрите также

|

Похожие темы

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