Está en la página 1de 29

LENGUAJE MATRICIAL

-2-

Instituto de Estudios Fiscales

César Pérez López

Jaime Villanueva García

-1- Dirección de Estudios Tributarios


Índice

I. EL LENGUAJE DE MATLAB: VARIABLES, NÚMEROS, OPERADORES, Y FUNCIONES........................... 4

1.- VARIABLES .............................................................................................................................................. 4


2.- NÚMEROS .............................................................................................................................................. 4
a) Resultados en Matlab: formato numérico ....................................................................................... 5
3.- OPERADORES .......................................................................................................................................... 6
4.- FUNCIONES ............................................................................................................................................. 7

II. LENGUAJE MATRICIAL .................................................................................................................... 8

III. VECTORES ...................................................................................................................................... 8

1.- CREACIÓN DE UN VECTOR........................................................................................................................... 8


a) Vector fila - vector columna ............................................................................................................. 9
b) Vectores progresivos ...................................................................................................................... 10
c) Creación de variables de caracteres ............................................................................................... 11

IV. ........................................................................................................................................................ 11

V. MATRICES .................................................................................................................................... 11

1.- CREACIÓN DE UNA MATRIZ ....................................................................................................................... 11


2.- ACCESO Y MODIFICACIÓN DE VALORES EN MATRICES ..................................................................................... 13
3.- CONCATENACIÓN (VERTICAL U HORIZONTAL) ................................................................................................ 14

VI. OPERACIONES, ANÁLISIS Y REPRESENTACIÓN CON VECTORES ................................................. 16

1.- OPERACIONES ....................................................................................................................................... 16


a) Operaciones entre vector y escalar ................................................................................................ 16
b.- Operaciones entre vectores .......................................................................................................... 17
c.- Operaciones con componentes ..................................................................................................... 19
2.- FUNCIONES ESTADÍSTICAS BÁSICAS ............................................................................................................. 19
3.- OPCIONES BÁSICAS DE REPRESENTACIÓN GRÁFICA ......................................................................................... 20

VII. OPERACIONES, ANÁLISIS Y REPRESENTACIÓN CON MATRICES ................................................. 25

1.- OPERACIONES ....................................................................................................................................... 25


a) Multiplicación matemática de matrices(*) .................................................................................... 25
b) Multiplicación elemento a elemento de matrices(.*) .................................................................... 25
c) Otras operaciones .......................................................................................................................... 25
2.- OPERADOR ":" ...................................................................................................................................... 26
a) Extracción de submatrices ............................................................................................................. 26

-2- Dirección de Estudios Tributarios


b) Extracción de una columna............................................................................................................ 26
c) Extracción de una fila ..................................................................................................................... 27
d) Eliminación de una columna .......................................................................................................... 27
3.- LA FUNCIÓN CAT .................................................................................................................................... 28
4.- OPCIONES BÁSICAS DE REPRESENTACIÓN GRÁFICA ......................................................................................... 28

-3- Dirección de Estudios Tributarios


I. El lenguaje de MATLAB: Variables, números,
operadores, y funciones
Como la mayoría de los lenguajes de programación, MATLAB proporciona
expresiones matemáticas, pero a diferencia de la mayoría de los lenguajes de
programación, estas expresiones conllevan el uso de matrices. Los componentes
básicos de las expresiones son:

1.- Variables
Matlab no requiere ningún tipo de declaración de variables sino que, una vez
que se utiliza una variable, Matlab crea la respectiva variable reservando el
espacio de memoria necesario. Por tanto, si la variable ya existe, Matlab
únicamente cambia su contenido. Por ejemplo: num_students = 25, crea una
matriz de 1 por 1 denominada num_students y almacena el valor 25.
Los nombres de variable constan de una letra, seguida por cualquier número
de letras, dígitos o subrayado (no caracteres especiales). MATLAB utiliza sólo los
primeros 31 caracteres de un nombre de variable. MATLAB distingue entre
mayúsculas y minúsculas (case sensitive), A y a no son la misma variable.
Para ver la matriz asignada a cualquiera variables, simplemente se debe introducir
el nombre de la variable.

2.- Números
MATLAB utiliza la notación decimal convencional, con un punto decimal opcional
y llevando signo "+" o "-", para los números. La notación científica utiliza la letra
"e" para especificar un factor de escala de potencia de diez. Los números
imaginarios utilizan "i" o "j" como sufijo.
Todos los números se almacenan internamente utilizando el formato
"long" especificado por el IEEE (IEEE 754) de punto flotante estándar. Los
números de punto flotante tienen una precisión finita de aproximadamente 16
dígitos decimales significativos y rango de 10-308 a 10+308

-4- Dirección de Estudios Tributarios


a) Resultados en Matlab: formato numérico
Respecto a los formatos numéricos con que MATLAB muestra los resultados
(siempre calcula con doble precisión, es decir con unas 16 cifras decimales
equivalentes), las posibilidades existentes se muestran a continuación:

>>x = [4/3 1.2345e-6]

• short coma fija con 4 decimales (defecto)

format short

1.3333 0.0000

• long coma fija con 15 decimales

format long

1.33333333333333 0.00000123450000

• hex cifras hexadecimales

format hex

3ff5555555555555 3eb4b6231abfd271

• bank números con dos cifras decimales

format bank

1.33 0.00

• short e notación científica con 4 decimales

format short e

1.3333e+000 1.2345e-006

• short g notación científica o decimal, dependiendo del valor

format short g

-5- Dirección de Estudios Tributarios


1.3333 1.2345e-006

• long e notación científica con 15 decimales

format long e

1.333333333333333e+000 1.234500000000000e-006

• long g notación científica o decimal, dependiendo del valor

format long g

1.33333333333333 1.2345e-006

• rational expresa los números racionales como cocientes de enteros

format rat

4/3 1/810045

Estos formatos se pueden cambiar desde la línea de comandos anteponiendo la


palabra format. Por ejemplo, para ver las matrices en formato long habrá que ejecutar
el comando:

>> format long

3.- Operadores
Las expresiones utilizan operadores y las reglas de precedencia habituales.

Los operadores de MATLAB se agrupan en tres categorías principales:

• Operadores aritméticos que realizan operaciones numéricas.


• Operadores relacionales que comparan operandos cuantitativamente.
• Operadores lógicos.
Ver tema OperadoresEnMatlab

-6- Dirección de Estudios Tributarios


4.- Funciones

MATLAB proporciona un gran número de funciones matemáticas estándar (abs,


sqrt, exp y sin, funciones matemáticas más avanzadas (Bessel, Gamma,
tratamiento de audio, imágenes,etc). La mayoría de estas funciones aceptan
argumentos complejos.

Para obtener una lista de las funciones matemáticas elementales, escribimos en el


command window >>help elfun

Para obtener una lista de las funciones matemáticas más especializadas, escribimos
en el command window >>help specfun

Algunas de las funciones, como sqrt y sin, son funciones preconstruidas (built-
in), forman parte del core de MATLAB, por lo que son muy eficientes, pero los
detalles de su implementación no son de fácil acceso. Otras funciones, como
gamma y sinh, están implementadas en M-files. De estas últimas, se puede ver
el código e incluso modificarlo. Por último, los usuarios medios-avanzados de
MATLAB implementan sus propias funciones en M-files.

Ver tema IntroduccionProgramacion

-7- Dirección de Estudios Tributarios


II. Lenguaje Matricial
La gran característica de MATLAB es la facilidad de manipulación de vectores y
matrices. En MATLAB todo es considerado como una matriz: un escalar es una
matriz 1x1, un vector es una matriz unidimensional (independientemente de que
sea vector fila o columna).

III. Vectores
Son la parte esencial de trabajar con datos en MATLAB. Permite almacenar más
de un valor en una variable.

Los vectores se utilizan, entre otras cosas, para representar:

• Puntos del plano y del espacio.

• Puntos de un espacio n-dimensional.

• Magnitudes físicas.

• Filas o columnas de una matriz

1.- Creación de un vector


• Escribimos sus componentes entre corchetes. Los corchetes
concatenan los valores en una variable.

• Valores separados por comas (,) o espacios ( ) crea vectores filas.

Ilustración 1: Vector fila

-8- Dirección de Estudios Tributarios


• Valores separados por punto y coma(;) crea vectores columnas.

Ilustración 2: Vector columna

a) Vector fila - vector columna


Se puede transponer un vector fila en un vector columna, utilizando el
operador (‘)

v=v’

Ilustración 3: Vector fila- vector columna

-9- Dirección de Estudios Tributarios


b) Vectores progresivos
Es muy frecuente tener que editar vectores con componentes equiespaciados,
por ejemplo, para crear una tabla de valores de una función. Con a:h:b creamos un
vector de componentes que van de a hasta b y distan h cada componente del
siguiente.

La orden linspace(a,b,n) crea n términos en progresión aritmética, desde a


hasta b.

Ejemplo de vectores con elementos distanciados uniformemente:

1. Year = 1990:2008

2. evenYears = 1990:2:2008

3. Si no se conoce el tamaño del incremento (dx) pero si conocemos el número


de elementos que queremos que formen parte del vector, se puede utilizar la
función linspace

- 10 - Dirección de Estudios Tributarios


c) Creación de variables de caracteres

Las variables en MATLAB pueden contener otro tipo de información como texto.

Para crear variables que incluyen texto deben ir entre comillas simples (ej.
descripción=’precio gasolina’). El tipo de la variable es char (character array).

Las reglas de asignación,acceso(índices) y concatenación funcionan exactamente


igual a lo visto hasta el momento.

IV. Matrices
Una matriz es, como el vector, una colección de elementos del mismo tipo. Sin
embargo, mientras el vector es unidimensional (una sóla fila o columna) en la
matriz los datos se organizan en dos o más dimensiones. Por tanto, para
almacenar múltiples filas y columnas en una sola variable se utilizan MATRICES.

1.- Creación de una matriz


Construiremos una matriz desde línea de comandos mediante alguna de las
siguientes opciones:

• Introduciendo directamente los elementos.

• Entre “[ ]”, colocando las filas una a continuación de otra separadas


por “;”.

• Entre corchetes, colocando cada fila en un renglón.

• La matriz vacía se representa por [].

- 11 - Dirección de Estudios Tributarios


• A partir de matrices predefinidas.

• A partir de otras matrices .

• Recibiendo propiedades, composición de submatrices o bien modificándola.

• Usando el operador “:”

Ejemplo

Ilustración 4: Creación de Matriz

Una vez definida la matriz, la variable queda almacenada en su espacio de trabajo


(workspace) y estará disponible para realizar cualquier operación. En MATLAB se
permite la creación de matrices vacías.

Los tipos de matrices usuales son:

Identidad de orden n eye (n)

Nula de tamaño mxn zeros (mxn)

Matriz de unos ones (m,n)

- 12 - Dirección de Estudios Tributarios


Matriz aleatoria rand (m,n)

Matriz diagonal diag(v)

Matriz inversa inv(A)

Matriz transpuesta A'

2.- Acceso y modificación de valores en matrices


A los elementos de una matriz se accede poniendo los dos índices entre
paréntesis separados por coma. Para acceder a cualquiera de sus elementos
debemos escribir el nombre de la matriz y entre paréntesis la fila y columna en la
que está: matriz (fila, columna). Por ejemplo: A(3, 2), A(1, 2), etc.

Se puede modificar alguno de los elementos de la matriz A, accediendo a cualquiera

Ilustración 5: Modificación elemento matriz

de sus posiciones por ejemplo:>> A(2,2)=-9

Para extraer un valor determinado utilizamos la indexación. Utilizamos row, column


ej) canadaPrice_1990=gasprices(4,3)

- 13 - Dirección de Estudios Tributarios


Se puede utilizar el comando end para hacer referencia al último elemento de
la fila o la columna. NO es necesario saber el tamaño de la variable.

Para extraer más de un valor en una matriz se puede utilizar vectores como índices.
Si importamos el fichero gasprices como matrix.

>> gasprices([1,19],7)

>> GerPrices90s=gasprices(1:10,5)

>> UK = gasprices(:,10)

Si se quiere sobreescribir algún valor se utiliza la asignación

gasprices(1,2)=valor

Se puede sobreescribir multiples valores gasprices(:,11)=zeros(19,1)

Si se excede las dimensiones de una matriz en una asignación , MATLAB expanderá


la matriz para hacer posible la asignación

3.- Concatenación (vertical u horizontal)


Para concatenar 2 arrays se puede utilizar concatenation (vendría a ser similar a
UNION en base de datos)

Previamente se ha visto que se utilizan los [] para concatener distintos valores, en


el caso anterior escalares. También se pueden concatenar vectores o matrices
utilizando el mismo principio.

Si concatenamos 2 matrices verticalmente-->tienen que tener el mismo


número de columnas

- 14 - Dirección de Estudios Tributarios


Ilustración 6: Concatenación (vertical u horizontal)

Si concatenamos 2 matrices horizontalmente tienen que tener mismo


número de filas

- 15 - Dirección de Estudios Tributarios


Ilustración 7: Ejemplo concatenación

V. Operaciones, análisis y representación con


vectores

1.- Operaciones

a) Operaciones entre vector y escalar


Las operaciones entre escalares y vectores son directas. Desde el punto de
vista teórico, no se puede sumar un escalar a un vector. Sin embargo, MATLAB si lo
permite: se puede sumar, restar, multiplicar, dividir por un escalar, cada uno de los
elementos individuales del array opera con el escalar.

- 16 - Dirección de Estudios Tributarios


Ilustración 8: Operaciones entre vector y escalar

b.- Operaciones entre vectores

A+B=[a1+b1 a2+b2 … an+bn]


A-B=[a1-b1 a2-b2 … an+bn]

- 17 - Dirección de Estudios Tributarios


A.*B=[a1.b1 a2.b2 … an.bn]
A y B deben ser horizontales o verticales
Si A=[fila] y B=[columna]: Producto punto A*B
A./B=[a1/b1 a2/b2 … an/bn]
A.^B=[a1^n1 a2^n2 … an^n1]

Ejemplos.

Con los vectores:

>> a=1:3

>> b=4:6

La suma y resta es:

>> a,b,a+b

>> a,b,a-b

Vectores columna.

>> a=(1:3)’,b=(4:6)’

>> a+b,a-b

Sin embargo, se pueden obtener resultados no esperados si no se recuerda


que MATLAB es un entorno que trabaja con matrices.

>> a,b,a*b

El último comando devuelve un error porque las dimensiones de las matrices “a y


b.” tienen que cumplir que el número de columnas de la matriz A es igual al número
de filas de la matriz B

>> a=1:3,b=4:7,a+b

- 18 - Dirección de Estudios Tributarios


c.- Operaciones con componentes

Para multiplicar los vectores “a” y “b” componente a componente es mediante el comando,
a.*b

>> a=(1:3)’,b=(4:6)’

>> a,b,a.*b

El símbolo “.*” es el operador de MATLAB para la multiplicación elemento a


elemento. La salida se calcula multiplicando las primeras componentes de los
vectores “a” y “b”, a continuación las segundas componentes, etc.

El operador de MATLAB para la división componente a componente es “./”

>> a,b,a./b

Para elevar cada componente de un vector a una potencia, ´usese “.^”

>> a,a.^2

2.- Funciones estadísticas básicas


Existen multitud de funciones estadísticas básicas en MATLAB que pueden operar
sobre vectores.

min(v). Devuelve el mínimo valor del vector v

max(v). Devuelve el máximo valor del vector v

sort(v). Devuelve el vector ordenado v

mean (v). Obtiene la media del vector v

Muchas funciones estadísticas tienen 2 argumentos de salida

[MinA,k]=min(vector). Calcula el mínimo valor del vector, dicho valor se


asigna a la varaible MinA y devuelve a su vez la posición (índice) que ocupa
dicho valor asignándolo a la variable k.

- 19 - Dirección de Estudios Tributarios


[MaxA,k]=max(vector). Calcula el máximo valor del vector, dicho valor se
asigna a la varaible MaxA y devuelve a su vez la posición (índice) que ocupa dicho
valor asignándolo a la variable k.

[GSort, GInd]=sort(vector) Devuelve 2 resultados, el vector ordenado (en


la variable GSort) y el vector correspondiente a los índices o posiciones
(GInd)

Es interesante probar los siguientes comandos que nos darán información sobre
nuestros vectores

>> size(u). El resultado indica la dimensión del vector u (filas-columnas)

>> length(v). El resultado indica el número de elementos del vector v.

3.- Opciones básicas de representación gráfica


Se pueden representar gráficamente un vector en función de otro plot(x,y), por
ejemplo:

plot(Year,France), la variable Year se representa en el eje de las X y la variable


France en el de las Y. Así;

Ilustración 9: Representación vector en función de otro vector

- 20 - Dirección de Estudios Tributarios


En el caso de representar sólo una variable, ej) plot(Germany), los valores se
representan en el eje de las Y. En el eje de las X se utilizan como valores
las posiciones (índices) del vector.

Ilustración 10: Representación de una variable


.

Como ya vimos en el capítulo anterior la función plot permite como argumento


seleccionar: line style, color, marker. (Opción al final entre comillas simples (') y
máximo de hasta 3 posiciones).

Algunos tipos de diagrama son: plot, area, hist, bar, stem, stairs.

Con el workspace GasPrices y la variable germany mostramos unos ejemplos


simples de diagramas.

- 21 - Dirección de Estudios Tributarios


Plot

Ilustración 11: Ejemplo representación plot (vectores)

Area(Germany)

Ilustración 12: Ejemplo representación area (vectores)

- 22 - Dirección de Estudios Tributarios


Hist

Ilustración 13: Ejemplo representación histafram (vectores)

Bar

Ilustración 14: Ejemplo representación bar (vectores)

- 23 - Dirección de Estudios Tributarios


Stem

Ilustración 15: Ejemplo representación stem (vectores)

Stairs

Ilustración 16: Ejemplo representación stairs (vectores)

- 24 - Dirección de Estudios Tributarios


VI. Operaciones, análisis y representación con
matrices

1.- Operaciones
Las operaciones básicas son iguales que en los vectores a excepción de la
multiplicación y división.

a) Multiplicación matemática de matrices(*)

El número de columnas de la primera matriz debe ser igual al número de


filas de la segunda matriz.
matriz

b) Multiplicación elemento a elemento de matrices(.*)

Hadamard product o element-wise


element product (.*)

La dimensión de las matrices debe ser la misma.


misma

c) Otras operaciones
• Element wise división (./):división elemento a elemento.

• Element wise exponentiation(.^):toma coma base el elemento de la primera


matriz y como exponente el elemento de la segunda matriz.

• La suma y la resta son siempre operaciones “element wise”.

- 25 - Dirección de Estudios Tributarios


2.- Operador ":"
El operador “:” se muestra mucho más potente cuando se trabaja con matrices.

a) Extracción de submatrices

b) Extracción de una columna

- 26 - Dirección de Estudios Tributarios


c) Extracción de una fila

d) Eliminación de una columna

- 27 - Dirección de Estudios Tributarios


3.- La función cat
La función “cat” se emplea para concatenar matrices a lo largo de una dimensión
especificada. Al igual que el operador “:” es de una gran utilidad cuando se trabaja
con matrices.

Ejemplo:

(1:abajo; 2: a la derecha):

4.- Opciones básicas de representación gráfica

Cuando se trata con tablas es útil comparar en un mismo gráfico cada una de las
columnas que componen la matriz para observar valores, transiciones y outliers.

- 28 - Dirección de Estudios Tributarios


Plot

Ilustración 17: Representación gráfica Plot

Simple Plot con label y leyenda:

EuroPrices = Gasprices(:,3:5); plot(Year,EuroPrices); legend('France','Germany','Italy')

Ilustración 18: Representación gráfica plot y leyendas

- 29 - Dirección de Estudios Tributarios

También podría gustarte