How to add two cells with strings together?
1 view (last 30 days)
Show older comments
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
Walter Roberson
on 18 Feb 2021
How did you read in the data? If you used textscan it is possible for leading outputs to be 1 longer than trailing outputs, if a file ends in the middle of a line or if the format uses the wrong number of fields.
Answers (2)
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, ' ');
0 Comments
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);
0 Comments
See Also
Categories
Find more on Logical 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!