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
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 консультируйтесь с внешними ресурсами, в частности, 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 или зарезервированной функции, затем, MATLAB переименовывает метод. Новое имя начинает с буквы x
и изменяет первую букву от настоящего имени к верхнему регистру. Например, MATLAB переименовывает метод Python cat
к xCat
. Для списка зарезервированных методов см. Методы, Которые Изменяют Поведение По умолчанию.
Если имя метода является ключевым словом MATLAB, затем вызовы MATLAB matlab.lang.makeValidName
переименовать метод. Для списка ключевых слов смотрите iskeyword
.
Если сгенерированное имя является двойным названием, то MATLAB переименовывает использование метода matlab.lang.makeUniqueStrings
.
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, используйте 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__ |