version (3.11 KB) by Emmanuel Farhi
Creates a Matlab-evaluable string which reconstructs a variable.


Updated 5 Feb 2019

View License

This function creates a string containing Matlab code describing a variable.

Create a string [ 'this = data;' ]
class2str(this, data, 'no comments')
same as above, but removes comments from the output file
class2str(this, data, 'eval')
creates a compact evaluable string of the initial data
class2str(this, data, 'flat')
creates a flat text with commented data blocks, which is not an m-file,
but rather a Linux-style config file.

input arguments:
this: string containing the name of the object to describe. Use '' to name the
root level from the input variable name, and ' ' to ignore root level
in structures.
data: any data set (struct, array, cell, char, objects)
options: optinal argument which may contain 'flat', 'no comments','eval'

output variables:
str: string which contains a function code to generate the data.

data=struct('a',1,'b','a string comment','c',{'cell'});
str=class2str(data) % produces a string/script that regenerates data
str=class2str('this', data) % idem, but creates 'this' instead of 'data'.
str=class2str(data, 'flat') % a kind of config file
str=class2str(data, 'eval') % a compact evaluable string

See also: mat2str, num2str, eval, sprintf

Part of: Loaders utilities (
Author: E. Farhi <>. Jan 2017
(c) E.Farhi, ILL. License: BSD.

Cite As

Emmanuel Farhi (2022). class2str (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2010a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Inspired: structdlg: a dialogue to edit structures

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!