При вызове функции Python ® MATLAB ® преобразует данные MATLAB в типы, которые наилучшим образом представляют данные на языке Python.
Тип входного аргумента MATLAB - | Результирующий Python | Примеры |
|---|---|---|
|
| Использование цифровых переменных Python в MATLAB |
Комплекс |
|
z = complex(1,2); py.cmath.polar(z) ans =
Python tuple with no properties.
(2.23606797749979, 1.1071487177940904)
|
|
| |
|
| |
|
| |
|
| |
|
| Использование переменных Python str в MATLAB |
|
|
py.list({string(missing),'Value'})ans =
Python list with no properties.
[None, 'Value']
|
|
| |
Структура |
| Использование переменных Python dict в MATLAB |
Объект Python - |
| |
дескриптор функции |
| Передать функцию Python функции карты Python |
Тип входного аргумента MATLAB - | Результирующий тип Python |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
При передаче вещественных числовых или логических массивов функции Python MATLAB автоматически преобразует данные в Python. memoryview объект. Если вывод функции Python реализует протокол буфера Python и является действительным числовым или логическим, то MATLAB отображает:
Фактический тип Python
Базовые данные
Соответствующая функция преобразования MATLAB. Эта функция используется для полного преобразования объекта Python в массив MATLAB.
Например, предположим, что функция Python вызывается в модуле pyModule возвращает переменную типа pyType с этими значениями:
p =
Python pyType:
8 1 6
3 5 7
4 9 2
Use details function to view the properties of the Python object.
Use double function to convert to a MATLAB array.
Преобразовать p в матрицу MATLAB P, введите:
P = double(p)
P = 3×3
8 1 6
3 5 7
4 9 2
Если вам нужна конкретная информация о свойствах Python p, введите:
details(p)
py.pyModule.pyType handle with properties:
T: [1×1 py.pyModule.pyType]
base: [1×1 py.NoneType]
ctypes: [1×1 py.pyModule.core._internal._ctypes]
data: [1×3 py.memoryview]
dtype: [1×1 py.pyModule.dtype]
flags: [1×1 py.pyModule.flagsobj]
flat: [1×1 py.pyModule.flatiter]
imag: [1×1 py.pyModule.pyType]
itemsize: [1×1 py.int]
nbytes: [1×1 py.int]
ndim: [1×1 py.int]
real: [1×1 py.pyModule.pyType]
shape: [1×2 py.tuple]
size: [1×1 py.int]
strides: [1×2 py.tuple]
Methods, Events, SuperclassesЕсли модуль Python предоставляет содержимое в __doc__ , затем MATLAB ссылается на эту информацию.
Использование Python memoryview объекты позволяют Python считывать данные MATLAB без копирования данных MATLAB. Для получения информации о memoryview объекты и протокол буфера, поиск этих терминов по адресу https://www.python.org/doc/.
Сложные и разреженные массивы MATLAB не поддерживаются в Python. См. раздел Неподдерживаемые типы MATLAB.
Если для функции Python требуется определенный тип многомерного массива Python, то MATLAB отображает сообщение с подсказками о дальнейших действиях. Если проблема может быть связана с передачей матрицы или многомерного массива в качестве аргумента, выполните следующие действия.
Проверьте документацию для функции Python и определите ожидаемый тип аргумента.
Создайте объект Python этого типа в MATLAB и передайте его функции Python.
Например, предположим, что следующий код возвращает ошибку.
a = [1 2; 3 4]; py.pyfunc(a)
Если документация pyfunc указывает, что ожидаемый тип: pyType, затем попробуйте выполнить следующее преобразование:
py.pyfunc(pyType(a))
Если ошибка сохраняется, определите основную причину, проверив наличие дополнительных сведений в исключении Python.
MATLAB автоматически преобразует эти типы данных, возвращенные Python, в типы MATLAB. Сведения о преобразовании других типов см. в разделе Явное преобразование типов Python в типы MATLAB.
Тип возврата Python, отображаемый в Python | Результирующий тип MATLAB - скалярный |
|---|---|
|
|
| Комплекс |
|
|
|
|
Все остальные типы Python - | Объект Python - |
Эти функции MATLAB используются для преобразования типов данных Python в типы MATLAB.
Тип возврата Python или протокол, отображаемый в MATLAB | Функция преобразования MATLAB | Примеры |
|---|---|---|
|
| Использование переменных Python str в MATLAB |
|
| |
|
| |
Объект с |
|
py.help('datetime.date.__str__')Help on wrapper_descriptor in datetime.date:
datetime.date.__str__ = __str__(self, /)
Return str(self).d = py.datetime.date(...
int32(2020),int32(3),int32(4));
char(d)ans = '2020-3-04' |
|
| |
|
| |
|
| |
Можно преобразовать |
| Используйте числовые переменные Python в MATLAB, например, Используйте целочисленные типы массива Python в MATLAB. |
Протокол последовательности; например, |
| Использование переменных списка Python в MATLAB Использование переменных кортежа Python в MATLAB |
протокол картирования; например, |
| Использование переменных Python dict в MATLAB |
Эти типы MATLAB не поддерживаются в Python.
Многомерный char или cell множества
Структурные массивы
Комплексные скалярные целые числа или массивы
Разреженные массивы
categorical,
table,
containers.Map,
datetime типы
Объекты MATLAB
meta.class (py.class)