linespace y el operador dos puntos en Matlab

En Matlab posiblemente el operador más utilizado es dos puntos. Con él es posible crear vectores espaciados que se pueden utilizar para seleccionar subíndices en arrays e iterar sobre los bucles for. Pero en muchas ocasiones puede carecer de suficiente flexibilidad. Para ello existen funciones como linspace y logspace con las que es posible disponer de mayor control para generar vectores con valores espaciados. En esta entrada se va a comparar la función linespace y el operador dos puntos en Matlab.

El operador dos puntos

El funcionamiento del operador dos puntos es bastante simple. Se escribe el primer valor de la serie, dos puntos y el último valor. Inmediatamente Matlab creará un vector que comienza en el primero y termina en el último, ambos incluidos, en paso de uno. Por ejemplo, el vector [1, 2, 3] se puede generar mediante 1:3.

En el caso de que se desee que el paso de la serie no sea la unidad se puede indicar utilizando tres números separados por dos puntos. En este caso el primer número será el valor inicial, el segundo el paso y el tercero el final. Por ejemplo, el vector [1, 3, 5] se puede conseguir con 1:2:5. También se puede generar con 1:2:6, ya que la serie nunca superará el segundo valor. El paso no tiene porque ser positivo ni entero. En el caso de que sea negativo la serie se generará en orden inverso. Así se puede conseguir el vector [3, 2, 1] con 3:-1:1.

Finalmente, si el valor inicial es mayor que el final y no se indica un paso negativo se obtendrá un vector vacío.

La función linespace

La función linespace de Matlab también genera un vector que comienza en un valor y termina en otro. A diferencia del operador dos puntos en necesario indicar el número de pasos. Por ejemplo, el vector [1, 2, 3] se generaría con linspace(1, 3, 3), mientras que [1, 3, 5] con linspace(1,5,3). Si no se indica el número de pasos en linspace generará siempre 100 valores.

Al generar la serie equiespaciada entre dos valores esta función es más útil cuando no se conoce el paso necesario. Siendo más adecuado para muestrear que el operador dos puntos.

La función logspace

Por otro lado, la función logspace es una versión de linspace en la que el espaciado de los puntos es logaritmo, en lugar de lineal. Para ello crea una serie de vectores desde diez elevado al primer valor hasta diez elevado al último. Por ejemplo, logspace(0, 1, 3) produce el vector [1, 3.1623, 10].

Para crear un vector entre dos valores, en lugar de sus potencia, se puede utilizar logspace(log10(a), log10(b), n). En donde a es el primer valor de la serie, b el segundo y n es el número de puntos.

Ejemplo de la función linespace y el operador dos puntos en Matlab

A continuación se muestran algunos ejemplo del operador dos puntos y su equivalente con linespace.

% Operador dos puntos
1:3:7   % [1 4 7]
7:-3:1  % [7 4 1]
1:1/2:2 % [1 1.5 2]
3:1     % []

% Equivalencias con linspace
linspace(1, 7, 3) % [1 4 7]
linspace(7, 1, 3) % [1 4 7]
linspace(1, 2, 3) % [1 1.5 2]

Conclusiones

En esta entrada se ha visto la función linespace y el operador dos puntos en Matlab. Ambas permiten generar vectores con series de valores, una en base a la separación u otro en base al número de puntos.

Imágenes: Pixabay (Pexels)

Sin votos
Por favor espera...

Suscríbete a nuestro boletín

Si te ha gustado el contenido puedes suscribirte al boletín semanal para recibir en su correo electrónico todas las novedades publicadas en Analytics Lane.
La dirección de correo suministradas se utilizará únicamente para enviar un correo semanal con las últimas publicaciones aparecidas en el blog. Los datos nunca serán utilizados para otros fines diferentes. Para más información puede consular nuestra Política de Privacidad.

Contenido relacionado

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *