Cell array, string concatenation
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
*I'm trying to create a function that will concatenate the two input strings. If one of the strings is longer than the other, I should only concatenate the last N characters of the longer string, where N is the length of the shorter string. For example, if the input strings were 'Hello' and 'MATLAB' the output would be ' HelloATLAB'. 'Hello' is the shorter of the two words at 5 characters, so the last 5 characters of the other string are concatenated. The first input will always be concatenated in front of the second input.
So here's the start that I wrote.
function [str] = shortCat(in1, in2)
cin = {in1; in2};
Lin = [length(in1) length(in2)];
Ldif = abs(Lin(1)-Lin(2));
[~,Lmax] = max(Lin);
I'm lost after this. Can someone help me to solve this?
0 commentaires
Réponse acceptée
Mischa Kim
le 7 Sep 2016
Danny, I would simply use an if-else for that, combined with indexing
function [str] = shortCat(in1, in2)
s1 = size(in1,2);
s2 = size(in2,2);
if s1 > s2
str = [in1(s1-s2+1:s1), in2];
else
str = [in1, in2(s2-s1+1:s2)];
end
end
Plus de réponses (1)
Nobel Mondal
le 7 Sep 2016
Modifié(e) : Nobel Mondal
le 7 Sep 2016
function outString = myStringConcatenator(inString1, inString2)
minLength = min(length(inString1), length(inString2));
outString = [inString1(length(inString1)-minLength+1 : end) ...
inString2(length(inString2)-minLength+1 : end)];
end
0 commentaires
Voir également
Catégories
En savoir plus sur Matrix Indexing dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!