В этом примере показано, как использовать функции языка Python® и модули в MATLAB®. Пример вызывает форматирующий текст модуль от библиотеки стандарта Python.
MATLAB поддерживает ссылочную реализацию Python, часто названного CPython. Если вы находитесь на платформе Mac или Linux, вам уже установили Python. Если вы находитесь на Windows, необходимо установить распределение, такое как найденные в https://www.python.org / загрузка, если вы уже не сделали так. Для получения дополнительной информации смотрите Установку Поддерживаемая Реализация 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 широкими символами. 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.