Documentation

This is machine translation

Translated by Microsoft
Mouse over text to see original. Click the button below to return to the English verison of the page.

mat2str

Convert matrix to character vector

Syntax

str = mat2str(A)
str = mat2str(A,n)
str = mat2str(A, 'class')
str = mat2str(A, n, 'class')

Description

str = mat2str(A) converts matrix A into a character vector. The character vector is suitable for input to the eval function such that eval(str) produces the original matrix to within 15 digits of precision.

str = mat2str(A,n) converts matrix A using n digits of precision.

str = mat2str(A, 'class') creates a character vector with the name of the class of A included. This option ensures that the result of evaluating str will also contain the class information.

str = mat2str(A, n, 'class') uses n digits of precision and includes the class information.

Limitations

The mat2str function is intended to operate on scalar, vector, or rectangular array inputs only. An error will result if A is a multidimensional array.

Examples

Example 1

Consider the matrix

x = [3.85 2.91; 7.74 8.99]

x =

    3.8500    2.9100
    7.7400    8.9900

The statement

A = mat2str(x)

produces

A =

[3.85 2.91;7.74 8.99]

where A is a character vector of 21 characters, including the square brackets, spaces, and a semicolon.

eval(mat2str(x)) reproduces x.

Example 2

Create a 1-by-6 matrix of signed 16-bit integers, and then use mat2str to convert the matrix to a 1-by-33 character vector, A. Note that A includes the class name, int16:

x1 = int16([-300 407 213 418 32 -125]);

A = mat2str(x1, 'class')
A =

int16([-300 407 213 418 32 -125])

class(A)

ans =

char

Evaluating A gives you an output x2 that is the same as the original int16 matrix:

x2 = eval(A);

if isnumeric(x2) && isa(x2, 'int16') && all(x2 == x1)
   disp 'Conversion back to int16 worked'
end

Conversion back to int16 worked

Introduced before R2006a

Was this topic helpful?