How to concatenate 2 cell arrays containing strings?

3 views (last 30 days)
I have something like this
x = arrayfun(@(i) sprintf("%s%i", 'xx', i), (0:6)');
which generates a 7x1 string array and behaves the way I want.
But I want to apply this to a variety of prefix strings as in.
s = ["xx"; "yy"];
x = arrayfun(@(s) arrayfun(@(i) sprintf("%s%i", 'LA', i), (0:6)'), s);
But this raises an error and changing it to
x = arrayfun(@(s) arrayfun(@(i) sprintf("%s%i", 'LA', i), (0:6)'), s, 'UniformOutput', false);
runs, but now generates a 2x1 cell array, each cell containing a 7x1 string array.
What I really want is a 14x1 string array. cell2mat does not work for this.
I realise I can get this done with a loop, but I prefer to code (and think) declaratively. Can this be done without a loop?

Accepted Answer

Adam on 24 Oct 2019
vertcat( x{:} )

More Answers (0)


Find more on Cell Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!