Converting a matrix to formatted text

Version 1.0.0.0 (1.35 KB) by Renee
Converts a numeric matrix to text in a cell array using matlab format string. Option to remove zeros
204 Downloads
Updated 14 Jun 2012

View License

When exporting a matrix of numbers for display in another program (eg. using xlswrite()), it may be useful to apply a format, such as limiting the number of decimals or adding external commands.

matlab limitations:
- xlswrite() does not have a format option.
- num2str() converts a row into a single string, which exports as one character per cell.
- num2str() can't be applied to a cell array.

This simple function converts each element to a character cell in an array using arrayfun() and a nested function that applies the format string with num2str().

Option: add the optional argument 'sparse' to convert 0 values to blank cells using cellfun() and a nested function.

The nested functions use variables available to the parent function.

sample run:
A = rand(3,5); A(2,1:3) = 0; % table with a few 0 values
txtA = makeTextTable(A,'%.2f'); % convert to text with 2 decimals

txtA = makeTextTable(A,'%.2f','sparse'); % convert to text with 2 decimals (no zeros)

Cite As

Renee (2026). Converting a matrix to formatted text (https://www.mathworks.com/matlabcentral/fileexchange/37169-converting-a-matrix-to-formatted-text), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2011b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Characters and Strings in Help Center and MATLAB Answers
Version Published Release Notes
1.0.0.0