Matlab

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)

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez

Recent Posts

Analytics Lane lanza la versión 1.2 del laboratorio con nuevas herramientas de ajuste de curvas y cálculo matricial

Seguimos iterando sobre el laboratorio de Analytics Lane y lanzamos la versión 1.2, disponible en:https://www.analyticslane.com/lab/es…

3 días ago

Cómo comparar tendencias con gráficos de líneas en Matplotlib: guía práctica paso a paso

Tienes los datos de tráfico web de los últimos cinco meses desglosados por canal: orgánico,…

6 días ago

Calibración vs Discriminación en Credit Scoring: diferencias clave y cómo evaluarlas

Imagina que construyes un modelo de credit scoring y obtienes un Gini de 0,65. Un…

2 semanas ago

Ley de Benford: cómo detectar datos manipulados con ejemplos reales

En un mundo donde los datos se han convertido en el lenguaje dominante de la…

3 semanas ago

This website uses cookies.