How to horizontally concatenate the cells of a cell array with different contents into a string.

10 次查看(过去 30 天)
Hi All,
I have a cell array as the one below:
EXTR =
20×3 cell array
{[ 550]} {[2]} {'GAM'}
{[ 600]} {[2]} {'GAM'}
{[ 650]} {[2]} {'GAM'}
{[ 700]} {[2]} {'GAM'}
{[ 750]} {[2]} {'GAM'}
{[ 800]} {[2]} {'GAM'}
{[ 850]} {[2]} {'GAM'}
{[ 900]} {[2]} {'GAM'}
{[ 950]} {[2]} {'GAM'}
{[1000]} {[2]} {'GAM'}
{[1100]} {[2]} {'GAM'}
{[1200]} {[2]} {'GAM'}
{[1300]} {[2]} {'GAM'}
{[1400]} {[2]} {'GAM'}
{[1500]} {[2]} {'GAM'}
{[1600]} {[2]} {'GAM'}
{[1700]} {[2]} {'GAM'}
{[1800]} {[2]} {'GAM'}
{[1900]} {[2]} {'GAM'}
{[2000]} {[2]} {'GAM'}
How is it possible to create a cell array that looks like this:
EXTR =
20×3 cell array
{'550 2 GAM'}
{'600 2 GAM'}
{'650 2 GAM'}
.....
In words, I would like all my columns to be combined into one where their contents are a string with a single space between them.
I have tried things in the like of horzcat(EXTR{:}), however they are not working for this case, possibly because not all contents are of uniform type...
Thanks for your help in advance,
KMT.

采纳的回答

madhan ravi
madhan ravi 2018-11-8
编辑:madhan ravi 2018-11-8
c={{[ 550]} {[2]} {'GAM'}
{[ 600]} {[2]} {'GAM'}}
c=cellfun(@string,c)
join(c)
command window:
>> COMMUNITY
c =
2×1 string array
"550 2 GAM"
"600 2 GAM"
>>
  3 个评论

请先登录,再进行评论。

更多回答(1 个)

Stephen23
Stephen23 2018-11-8
编辑:Stephen23 2018-11-8
An old-fashioned way (strings are probably easier):
>> C = {550,2,'GAM';600,2,'GAM';650,2,'GAM';700,2,'GAM';750,2,'GAM';800,2,'GAM';850,2,'GAM';900,2,'GAM';950,2,'GAM';1000,2,
'GAM';1100,2,'GAM';1200,2,'GAM';1300,2,'GAM';1400,2,'GAM';1500,2,'GAM';1600,2,'GAM';1700,2,'GAM';1800,2,'GAM';1900,2,'GAM';
2000,2,'GAM'};
>> D = C.';
>> S = sprintf('\n%d %d %s',D{:});
>> Z = regexp(S(2:end),'\n','split');
>> Z{:}
ans = 550 2 GAM
ans = 600 2 GAM
ans = 650 2 GAM
ans = 700 2 GAM
ans = 750 2 GAM
ans = 800 2 GAM
ans = 850 2 GAM
ans = 900 2 GAM
ans = 950 2 GAM
ans = 1000 2 GAM
ans = 1100 2 GAM
ans = 1200 2 GAM
ans = 1300 2 GAM
ans = 1400 2 GAM
ans = 1500 2 GAM
ans = 1600 2 GAM
ans = 1700 2 GAM
ans = 1800 2 GAM
ans = 1900 2 GAM
ans = 2000 2 GAM

类别

Help CenterFile Exchange 中查找有关 Physics 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by