В этом примере показано, как использовать языковые функции и модули 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 wrappedName Size Bytes Class Attributes wrapped 1x3 8 py.list
wrapped является списком Python, который является списком строк Python. MATLAB показывает этот тип как py.list.
Новообращенный py.list в массив ячеек строк Python.
wrapped = cell(wrapped);
whos wrappedName 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.
Создание аргументов ключевых слов с помощью MATLAB pyargs с разделенным запятыми списком пар имя/значение. width форматирует текст шириной 30 символов. 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.