Convert String array into Cell array

조회 수: 70 (최근 30일)
Michael Williams
Michael Williams 2018년 3월 15일
답변: Tarek Bekir 2020년 9월 5일
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;

채택된 답변

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

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Tarek Bekir
Tarek Bekir 2020년 9월 5일
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 2019년 11월 14일
Yes, this also helped me. Thanks a lot.

카테고리

Help CenterFile Exchange에서 Cell Arrays에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by