Funciones de generación

Existe una serie de funciones que se utilizan para generar matrices de ciertas características.

Como comentamos en la introducción, las funciones de Octave permiten un número variable de parámetros. La mayoría de ellas tienen un comportamiento distinto según el número y el tipo de los parámetros con que son invocadas. De esta manera con un mismo identificador (nombre de la función) se pueden conseguir resultados distintos.

Veamos esto en la función zeros:

zeros
devuelve un matriz con todos sus elementos a 0. Los parámetros sirven para indicar el tamaño de dicha matriz. Las posibilidades que tenemos son:
zeros( n )
invocada con 1 parámetro que es un escalar entero positivo n. Devuelve una matriz cuadrada de dimensión n (n filas y n columnas) con todos los elementos a 0.
zeros( n, m )
invocada con 2 parámetro que son escalares enteros positivos n y m. Devuelve una matriz de n filas y m columnas con todos los elementos a 0.
zeros( [ n, m ] )
invocada con 1 parámetro que es un vector de dos enteros positivo n y m. Devuelve una matriz de n filas y m columnas con todos los elementos a 0.

Ejemplos

  • zeros(3) devolverá una matriz cuadrada de dimensión 3 (3 filas y 3 columnas) con todos sus elementos a 0.
  •  zeros(2,4) devolverá una matriz de 2 filas y 4 columnas con todos sus elementos a 0.
  • zeros([5,1]) devolverá una matriz de 5 filas y 1 columna (vector columna) con todos sus elementos a 0.

Otras funciones, que tienen unas opciones de invocación idénticas a zeros, son :

ones
devuelve un matriz con todos sus elementos a 1. Formas de invocación ones(n), ones(n,m) y ones([n,m])
eye
devuelve un matriz con todos sus elementos a 0 salvo los de la diagonal principal (primera diagonal). Si se genera una matriz cuadrada el resultado será la matriz identidad de esa dimensión. Formas de invocación eye(n), eye(n,m) y eye([n,m])
rand
devuelve un matriz con elementos aleatorios tomados de una distribución uniforme entre 0 y 1. Formas de invocación rand(n), rand(n,m) y rand([n,m])
randn
devuelve un matriz con elementos aleatorios tomados de una distribución gausiana de media 0 y varianza unidad 1. Formas de invocación randn(n), randn(n,m) y randn([n,m])

Ejemplos

  • ones([2,3]) devolverá una matriz de 2 filas y 3 columnas con todos sus elementos a 1.
  • eye(4) devolverá la matriz identidad de dimensión 4.
  • eye(3,5) devolverá la matriz de 3 filas y 5 columnas con todos los elementos a 0 salvo los de la primera diagonal.
  • rand([1,5]) devolverá un vector fila de 5 número aleatorios elegidos uniformemente (con la misma probabilidad) entre 0 y 1.
  • randn(5) devolverá una matriz cuadrada de dimensión 5 rellena de números aleatorios tomados de una distribución gausiana de media 0 y varianza 1.

Otras funciones interesantes de este grupo son:

linspace(inicial,final,n)
devuelve un vector de elementos equiespaciados a partir del valor inicial y hasta el final. Habrá tantos elementos como indique n, o 100 si este parámetro no se especifica. A diferencia de los rangos, en que se conoce la separación de los elementos pero no su número, en este caso se conoce el número de elementos pero no su separación.
logspace(inicial,final,n)
similar a linspace pero con una separación logarítmica entre los elementos del vector. En este caso inicial y final representan los exponentes de 10 para el valor inicial y final del vector. Es decir, se devuelven n números de una sucesión geométrica entre 10inicial hasta 10final. En el caso de que final valga π el valor final será π y no 10π.

Ejemplos

  • Comparación entre un rango y linspace

Obra colocada bajo licencia Creative Commons Attribution Non-commercial Share Alike 3.0 License