Converting multiple cells to an equivilent character vector defining the original array

1 Ansicht (letzte 30 Tage)
As part of an app, I need to use a cell array containing characters to generate a string of text that when pasted in the command window would generate the original cell array as a variable.
input example: the 1×4 cell array named 'legText' with the below contents.
{'Indexed'} {'Forsterite'} {'Enstatite'} {'Diopside'}
Desired output (as a character vector)
legText={'Indexed','Forsterite','Enstatite','Diopside'};
I've been doing this by appending to a character vector in a loop without preallocation, but this is pretty inefficient. Is there a better method?
Thanks, Jessica.

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 25 Dez. 2018
fprintf('legText = cellstr(%s);\n', mat2str(string(legText)))
or
fprintf('legText = {'); fprintf('''%s'',', legText{:}); fprintf('};\n');
  1 Kommentar
Jessica Hiscocks
Jessica Hiscocks am 26 Dez. 2018
Thank you, this got me 95% of the way there! It turned out that using the second option, changing to sprintf, and concatenating was the answer- the final comma does not affect the output
code:
temp=[sprintf('legText = {'), sprintf('''%s'',', legText{:}), sprintf('};')];
output:
legText = {'Indexed','Forsterite','Enstatite','Diopside',};

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by