How to add two cells with strings together?

1 vue (au cours des 30 derniers jours)
Sarah Mullin
Sarah Mullin le 18 Fév 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 commentaires
Walter Roberson
Walter Roberson le 18 Fév 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.
Adam Danz
Adam Danz le 18 Fév 2021
What are text1{1} and text1{14}? Examples would be best.

Connectez-vous pour commenter.

Réponses (2)

Walter Roberson
Walter Roberson le 18 Fév 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 le 18 Fév 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);

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by