Этот пример показывает, как использовать функции языка Python® и модули в MATLAB®. Пример вызывает форматирующий текст модуль от библиотеки стандарта Python.
MATLAB поддерживает ссылочную реализацию Python, часто названного CPython, версиями 2.7, 3.5, 3.6, и 3.7. Если вы находитесь на платформе Mac или Linux, вам уже установили Python. Если вы находитесь на Windows, необходимо установить распределение, такое как найденные по https://www.python.org/download, если вы уже не сделали так. Для получения дополнительной информации смотрите Установку Поддерживаемая Реализация Python.
MATLAB имеет эквивалентности для большой части библиотеки стандарта Python, но не всего. Например, textwrap
является модулем для форматирования блоков текста с возвратами каретки и другими удобствами. MATLAB также обеспечивает функцию textwrap
, но он только сворачивает текст, чтобы соответствовать в управлении пользовательского интерфейса.
Создайте абзац текста, чтобы вопроизвести с.
T = 'MATLAB(R) is a high-level language and interactive environment for numerical computation, visualization, and programming. Using MATLAB, you can analyze data, develop algorithms, and create models and applications. The language, tools, and built-in math functions enable you to explore multiple approaches and reach a solution faster than with spreadsheets or traditional programming languages, such as C/C++ or Java(TM).';
Вызовите функцию textwrap.wrap
путем ввода символов py.
перед именем функции. Не вводите import textwrap
.
wrapped = py.textwrap.wrap(T);
whos wrapped
Name Size Bytes Class Attributes wrapped 1x7 8 py.list
wrapped
является списком Python, который является списком строк Python. MATLAB показывает этот тип py.list
.
Преобразуйте py.list
в массив ячеек строк Python.
wrapped = cell(wrapped);
whos wrapped
Name Size Bytes Class Attributes wrapped 1x7 840 cell
Несмотря на то, что wrapped
является массивом ячеек MATLAB, каждый элемент ячеек является строкой Python.
wrapped{1}
ans = Python str with no properties. MATLAB(R) is a high-level language and interactive environment for
Преобразуйте строки Python в строки MATLAB с помощью функции char
.
wrapped = cellfun(@char, wrapped, 'UniformOutput', false);
wrapped{1}
ans = 'MATLAB(R) is a high-level language and interactive environment for'
Теперь каждый элемент ячеек является строкой MATLAB.
Настройте вывод абзаца с помощью аргументов ключевого слова.
Предыдущий код использует функцию удобства wrap
, но модуль предоставляет намного больше возможностей с помощью функциональности py.textwap.TextWrapper
. Чтобы использовать опции, вызовите py.textwap.TextWrapper
с аргументами ключевого слова, описанными по https://docs.python.org/2/library/textwrap.html#textwrap.TextWrapper.
Создайте аргументы ключевого слова с помощью функции pyargs
MATLAB со списком, разделенным запятыми пар имя/значение. 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{:})
% MATLAB(R) is a high-level % language and interactive % environment for numerical % computation, visualization, % and programming. Using % MATLAB, you can analyze % data, develop algorithms, % and create models and % applications. The language, % tools, and built-in math % functions enable you to % explore multiple approaches % and reach a solution faster % than with spreadsheets or % traditional programming % languages, such as C/C++ or % Java(TM).
Достаточно помнить, что Python является еще одним потенциальным источником библиотек для пользователя MATLAB. Если вы хотите узнать о движущихся данных между MATLAB и Python, включая типы данных Python, такие как кортежи и словари, смотрите Библиотеки Python.