Convert String array into Cell array

200 Ansichten (letzte 30 Tage)
Michael Williams
Michael Williams am 15 Mär. 2018
Beantwortet: Tarek Bekir am 5 Sep. 2020
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;

Akzeptierte Antwort

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Tarek Bekir
Tarek Bekir am 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 am 14 Nov. 2019
Yes, this also helped me. Thanks a lot.

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