Effacer les filtres
Effacer les filtres

Convert String array into Cell array

205 vues (au cours des 30 derniers jours)
Michael Williams
Michael Williams le 15 Mar 2018
I am running simulations for 16 weather stations and saving 3 simulated temperature measurements at each station. I created a large table (11000x48000) to hold simulations. I want to name each of the columns something descriptive. I was able to get the names I want into a 1x48000 string array, but I believe I have to convert it into a 1x48000 cell array to work.
varNames = join([repmat('Sim_',3*1000*16,1),(reshape(repmat(1:1000,3*16,1),[],1)),...
repmat("_Station_",3*1000*16,1),(reshape(repmat(1:16,3,1000),[],1)),...
reshape(repmat({'_Max', '_Min', '_Avg'},1000*16,1)',[],1)], "")';
simTable.Properties.VariableNames = varNames;

Réponse acceptée

James Tursa
James Tursa le 15 Mar 2018
Is this the conversion you need?
result = arrayfun(@(x)char(varNames(x)),1:numel(varNames),'uni',false);
  1 commentaire
Michael Williams
Michael Williams le 15 Mar 2018
Thanks, that worked perfectly. I had tried {result = char(varNames)}, but that gave me a character array.

Connectez-vous pour commenter.

Plus de réponses (2)

Tarek Bekir
Tarek Bekir le 5 Sep 2020
You can use cellstr (array)
For example
tt=["apple";"orange";"banana"];
bb={};
bb=cellstr(tt);
tt
bb
tt =
3×1 string array
"apple"
"orange"
"banana"
bb =
3×1 cell array
{'apple' }
{'orange'}
{'banana'}

Raymond MacNeil
Raymond MacNeil le 14 Nov 2019
Yes, this also helped me. Thanks a lot.

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!

Translated by