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

1 次查看(过去 30 天)
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.

采纳的回答

Walter Roberson
Walter Roberson 2018-12-25
fprintf('legText = cellstr(%s);\n', mat2str(string(legText)))
or
fprintf('legText = {'); fprintf('''%s'',', legText{:}); fprintf('};\n');
  1 个评论
Jessica Hiscocks
Jessica Hiscocks 2018-12-26
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',};

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Data Type Conversion 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by