В этом примере показано, как использовать функции и модули языка Python ® в MATLAB ®. В примере вызывается модуль форматирования текста из стандартной библиотеки Python.
MATLAB поддерживает эталонную реализацию Python, часто называемую CPython. Если вы находитесь на платформе Mac или Linux, у вас уже установлен Python. Если вы находитесь в Windows, необходимо установить распределение, такой как найденные на https://www.python.org/download, если вы еще этого не сделали. Дополнительные сведения см. в разделе Установка поддерживаемой реализации Python.
textwrap
МодульMATLAB имеет эквивалентности для большей части стандартной библиотеки Python, но не для всего. Для примера, textwrap
- модуль для форматирования блоков текста с возвратами каретки и другими удобствами. MATLAB также предоставляет textwrap
функция, но она помещает текст только в элемент управления пользовательского интерфейса.
Создайте абзац текста для воспроизведения.
T = 'We at MathWorks believe in the importance of engineers and scientists. They increase human knowledge and profoundly improve our standard of living.';
Вызовите textwrap.wrap
функция путем ввода символов py.
перед именем функции. Не вводите import textwrap
.
wrapped = py.textwrap.wrap(T);
whos wrapped
Name Size Bytes Class Attributes wrapped 1x3 8 py.list
wrapped
- список Python, представляющий собой список строк на Python. MATLAB показывает этот тип следующим py.list
.
Преобразование py.list
в массив ячеек из строк Python.
wrapped = cell(wrapped);
whos wrapped
Name Size Bytes Class Attributes wrapped 1x3 336 cell
Хотя wrapped
является массивом ячеек MATLAB, каждый элемент камеры является строкой Python.
wrapped{1}
ans = Python str with no properties. We at MathWorks believe in the importance of engineers and scientists.
Преобразуйте строки Python в строки MATLAB с помощью char
функция.
wrapped = cellfun(@char, wrapped, 'UniformOutput', false);
wrapped{1}
ans = 'We at MathWorks believe in the importance of engineers and scientists.'
Теперь каждый элемент камеры является строкой MATLAB.
Настройте выход абзаца с помощью аргументов ключевого слова.
Предыдущий код использует wrap
функция удобства, но модуль предоставляет намного больше опций, используя py.textwap.TextWrapper
функциональность. Чтобы использовать опции, позвоните py.textwap.TextWrapper
с аргументами ключевых слов, описанными в https://docs.python.org/2/library/textwrap.html#textwrap.TextWrapper.
Создайте аргументы в виде ключевых слов с помощью pyargs
MATLAB функция с разделенным запятыми списком пар имя/значение.
width
форматирует текст шириной 30 символов. The initial_indent
и subsequent_indent
ключевые слова начинают каждую строку с символа комментария, %
, используемый MATLAB.
tw = py.textwrap.TextWrapper(pyargs(... 'initial_indent', '% ', ... 'subsequent_indent', '% ', ... 'width', int32(30))); wrapped = wrap(tw,T);
Преобразуйте в аргумент MATLAB и отобразите результаты.
wrapped = cellfun(@char, cell(wrapped), 'UniformOutput', false); fprintf('%s\n', wrapped{:})
% We at MathWorks believe in % the importance of engineers % and scientists. They % increase human knowledge and % profoundly improve our % standard of living.
Достаточно вспомнить, что Python - еще один потенциальный источник библиотек для пользователя MATLAB. Если вы хотите узнать о перемещении данных между MATLAB и Python, включая такие типы данных Python, как кортежи и словари, смотрите Библиотеки Python в MATLAB.