How to add two cells with strings together?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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
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.
Réponses (2)
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, ' ');
0 commentaires
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);
0 commentaires
Voir également
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!