
Cuando se tiene una cadena de texto en Matlab es posible eliminar los espacios en blanco sobrantes con la función strtrim()
. Eliminando los espacios en blanco al inicio y al final de la cadena. A diferencia de otros lenguajes de programación no existen funciones para eliminar solamente los espacios en blanco sobrantes al principio o al final de la cadena. Como puede ser LTRIM
y RTRIM
en SQL. Aunque esto es algo que se puede solucionar fácilmente mediante expresiones regulares con las que se puede implementar funciones que puedan eliminar los espacios en blanco al inicio o al final en Matlab.
La función strtrim()
de Matlab
Si se tiene una cadena con espacios en blanco en Matlab se puede usar la función para eliminar los que se encuentran al principio o al final. Por ejemplo, si se ejecuta la línea
strtrim(' ¡Hola Mundo! ')
El resultado será la cadena sin espacios en blanco: '¡Hola Mundo'
. Ahora, si solamente se quería eliminar los espacios a final de la cadena esto no se puede hacer con strtrim()
.
Uso de expresiones regulares para eliminar los espacios en blanco
Este problema se puede resolver mediante el uso de expresiones regulares. Si se desea eliminar los espacios en blanco al inicio de una cadena se puede usar '^\s+'
, mientras que para usarlos al final sería '\s+$',
. De este modo si se ejecuta la siguiente linea en Matlab
regexprep(' ¡Hola Mundo! ', '^\s+', '')
El resultado será '¡Hola Mundo! '
, Por otro lado la siguiente línea eliminar los espacios al final de la cadena.
regexprep(' ¡Hola Mundo! ', '\s+$', '')
Esto es, el resutaso será ' ¡Hola Mundo!'
.
Implementación de las funciones ltrim()
y strim()
en Matlab
En base a lo visto en las secciones anteriores no es complicado escribir las funciones ltrim()
y strim()
para Matlab. Una posible implementación sería la que se muestra a continuación.
function str = ltrim(str) % Elimina los espacios en blanco al principio de una cadena str = regexprep(str, '^\s+', ''); end function str = rtrim(str) % Elimina los espacios en blanco al final de una cadena str = regexprep(str, '\s+$', ''); end
Conclusiones
Eliminar espacios en blanco al inicio y al final de una cadena se puede realizar con la función strtrim()
. Pero si solo se necesita eliminar los espacios al inicio o al final en Matlab es necesario recurrir a expresiones regulares. Aunque este truco se puede usar en cualquier otro sitio donde se puedan usar expresiones regulares. Al igual que se podría usar el truco para validar palabras con acentos mediante expresiones regulares en Matlab, una de las ventajas de conocer las expresiones regulares.
Imagen de Scott Webb en Pixabay
Deja una respuesta