Convert a value into a Matlab syntax string
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Giovanni Camodeca
le 6 Déc 2020
Réponse apportée : Steven Lord
le 6 Déc 2020
Hi all,
is it possible to convert a value from an struct into a string using the Matlab syntax ?
e.g.
I folowing struct : exStruct.value = [1 0 0;0 1 0;0 0 1];
If i am using num2str(exStruct.value) the output is a char that looks like this:
val =
1 0 0
0 1 0
0 0 1
What i want is more sth. like this :
val =
[1 0 0;0 1 0;0 0 1]
Is this possible ?
Cheers
0 commentaires
Réponse acceptée
Ameer Hamza
le 6 Déc 2020
Modifié(e) : Ameer Hamza
le 6 Déc 2020
You can do something like this
exStruct.value = [1 0 0;0 1 0;0 0 1];
out = ['[' strjoin(compose(repmat(' %d ',1,3), exStruct.value), ';') ']']
Result
>> out
out =
'[ 1 0 0 ; 0 1 0 ; 0 0 1 ]'
0 commentaires
Plus de réponses (2)
Rik
le 6 Déc 2020
You can do it like that, but it is already Matlab syntax if you add the square brackets, as arrays can be defined across multiple lines.
Anyway: you can split the resulting char into rows (e.g. with mat2cell), add semicolons between each (e.g. with sprintf('%s;', c{:}) removing the trailing semicolon), and add the brackets to either side.
If you have trouble implementing this, post a comment with the code you tried.
0 commentaires
Steven Lord
le 6 Déc 2020
mat2str([1 0 0;0 1 0;0 0 1])
But if you're doing this so you can later on evaluate this text to define the variable, I would advise against it. The general consensus is to avoid eval wherever possible.
0 commentaires
Voir également
Catégories
En savoir plus sur Data Type Conversion dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!