MATLAB Answers

How to add two cells with strings together?

38 views (last 30 days)
Sarah Mullin
Sarah Mullin on 18 Feb 2021
Answered: Walter Roberson on 18 Feb 2021
So my teacher asked us to download a csv file with a bunch of data in it that has 15 columns. One of the things we have to do is join together column 1 and column 14 which both contain strings. Is there a function to combine two cells together and put it into a new one? I tried this:
Column1=text1{1};
Column2=text1{14}
C=cellfun(@(x,y) [x ' ' y], A,B,'un',0)
and got this error:
"Error using cellfun. All of the input arguments must be of the same size and shape. Previous inputs had size 4946 in dimension 1. Input #3 has size 4945"
but all of the data is the same amount. please help.
  4 Comments
Adam Danz
Adam Danz on 18 Feb 2021
What are text1{1} and text1{14}? Examples would be best.

Sign in to comment.

Answers (2)

Walter Roberson
Walter Roberson on 18 Feb 2021
maxlength = max(numel(A), numel(B));
A = [A(:); repmat({''}, maxlength - numel(A),1)];
B = [B(:); repmat({''}, maxlength - numel(B),1)];
C = strjoin(A, B, ' ');

Jan
Jan on 18 Feb 2021
The message tells you, that A and B have different number of elements. Then a concatenation cannot work. If both have the same size, this is easier than your cellfun approach:
C = strcat(A, ' ', B);

Community Treasure Hunt

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

Start Hunting!