Use Python textwrap Module
MATLAB has equivalencies for much of the Python standard library, but not everything. For example, textwrap is a module for formatting blocks of text with carriage returns and other conveniences. MATLAB also provides a textwrap function, but it only wraps text to fit inside a UI control.
Create a paragraph of text to play with.
T = 'We at MathWorks believe in the importance of engineers and scientists. They increase human knowledge and profoundly improve our standard of living.';
Convert Python String to MATLAB String
Call the textwrap.wrap function by typing the characters py. in front of the function name. Do not type import textwrap.
wrapped = py.textwrap.wrap(T);
whos wrapped
Name Size Bytes Class Attributes
wrapped 1x3 8 py.list
wrapped is a Python list, which is a list of Python strings. MATLAB shows this type as py.list.
Convert py.list to a cell array of Python strings.
wrapped = cell(wrapped);
whos wrapped
Name Size Bytes Class Attributes
wrapped 1x3 336 cell
Although wrapped is a MATLAB cell array, each cell element is a Python string.
wrapped{1}
ans =
Python str with no properties.
We at MathWorks believe in the importance of engineers and scientists.
Convert the Python strings to MATLAB strings using the char function.
wrapped = cellfun(@char, wrapped, 'UniformOutput', false);
wrapped{1}
ans =
'We at MathWorks believe in the importance of engineers and scientists.'
Now each cell element is a MATLAB string.
Customize the Paragraph
Customize the output of the paragraph using keyword arguments.
The previous code uses the wrap convenience function, but the module provides many more options using the py.textwap.TextWrapper functionality. To use the options, call py.textwap.TextWrapper with keyword arguments described at https://docs.python.org/2/library/textwrap.html#textwrap.TextWrapper.
Create keyword arguments using the MATLAB pyargs function with a comma-separated list of name/value pairs. width formats the text to be 30 characters wide. The initial_indent and subsequent_indent keywords begin each line with the comment character, %, used by MATLAB.
tw = py.textwrap.TextWrapper(pyargs(...
'initial_indent', '% ', ...
'subsequent_indent', '% ', ...
'width', int32(30)));
wrapped = wrap(tw,T);
Convert to a MATLAB argument and display the results.
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.
Learn More
It is sufficient to remember that Python is yet another potential source of libraries for the MATLAB user. If you want to learn about moving data between MATLAB and Python, including Python data types such as tuples and dictionaries, see Python Libraries in MATLAB.