Converting sym to string without 'matrix....' before

Hi,
I need some help to convert a symbolic array to string.
I tried with:
syms a b c
Array = [a b c];
string = char(Array);
but it returns
matrix([[a b c]]);
Is there a way to take only the string inside ? I need set it to take '[a b c]' as string.
Thanks

 Réponse acceptée

Wayne King
Wayne King le 26 Sep 2013
Can you tell us the use case here, you just want to display it as a string?
One thing you can do is
syms a b c
Array = [a b c];
array_string = char(Array);
array_string([1:8, end-1:end]) = [];

5 commentaires

Marco
Marco le 26 Sep 2013
'Cause I have to put a sym array into a Costant Simulink block and it wants 'Value' as string
I wonder what mat2str() would return for the symbolic case?
Jong Hoon Choi
Jong Hoon Choi le 7 Nov 2017
Modifié(e) : Jong Hoon Choi le 7 Nov 2017
Tried mat2str(), but gave me this error: Error using mat2str (line 55) Input matrix must be numeric.
if I want to execute a program in which at least one line contains matrix, an error comes ...
Is there no more convenient conversion from a symbolic (which is coming from solve) to a character vector than that using char ?
No, there is no more convenient way.
Caution: char() of a symbolic expression gives a result which is not exactly a MATLAB expression, and which is not exactly a MuPAD expression either. You should only use char() of a symbolic expression for display purposes.
If you need to generate MATLAB code from a symbolic expression, use matlabFunction(), possibly followed by func2str()

Connectez-vous pour commenter.

Plus de réponses (1)

In the case of symbolic row vectors:
['[', strjoin(arrayfun(@char, Array, 'uniform', 0),', '), ']']

Catégories

En savoir plus sur Symbolic Math Toolbox dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by