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