Select part of a string
320 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
JE101
el 23 de Mzo. de 2017
Comentada: Gina Eldridge
el 4 de Abr. de 2022
I have a large column vector of strings. The strings vary in length. I would like to select out the last 5 characters of the actual string (i.e., I don't want 5 blank spaces that you would get by converting it to a char array and then selecting the last 5 columns).
I have a complicated way of doing this by switching between a string array and a character array and using sub2ind, but I was wondering if there is a simpler way to do this. I've tried using strtok and flip, but can't get it to do exactly what I want.
If possible, I'd like to avoid using a loop (because of the size of the array).
If you use excel, I want to do the equivalent of the RIGHT function.
Any suggestions would be much appreciated! Thanks.
0 comentarios
Respuesta aceptada
Stephen23
el 23 de Mzo. de 2017
Editada: Stephen23
el 23 de Mzo. de 2017
A string array treats each string as being atomic, whereas you need to be able to access each character as atomic. Use cellstr to convert to a cell array of chars, and then use cellfun to extract the parts you need:
cellfun(@(s)s(end-4:end),cellstr(inp),'uni',0)
Más respuestas (1)
Steven Lord
el 23 de Mzo. de 2017
Another approach, if you're using the string class introduced in release R2016b, is to use extractAfter.
>> animals = {'cat'; 'elephant'; 'dog'; 'hippopotamus'};
>> animalsString = string(animals);
>> lastTwoLetters = extractAfter(animalsString, strlength(animalsString)-2)
lastTwoLetters =
4×1 string array
"at"
"nt"
"og"
"us"
2 comentarios
Ver también
Categorías
Más información sobre Characters and Strings en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!