Converting a matrix to formatted text

Converts a numeric matrix to text in a cell array using matlab format string. Option to remove zeros

You are now following this Submission

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 .

General Information

MATLAB Release Compatibility

  • Compatible with any release

Platform Compatibility

  • Windows
  • macOS
  • Linux
Version Published Release Notes Action
1.0.0.0