Convert a value into a Matlab syntax string
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Giovanni Camodeca
il 6 Dic 2020
Risposto: Steven Lord
il 6 Dic 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 Commenti
Risposta accettata
Ameer Hamza
il 6 Dic 2020
Modificato: Ameer Hamza
il 6 Dic 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 Commenti
Più risposte (2)
Rik
il 6 Dic 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 Commenti
Steven Lord
il 6 Dic 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 Commenti
Vedere anche
Categorie
Scopri di più su Data Type Conversion in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!