В этом примере показано, как использовать функции языка 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 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.
Создайте аргументы ключевого слова с помощью 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.