You are on page 1of 117

TUTORIAL DE MATLAB

Ing. Jos Canchia

Curso Bsico de Matlab

Presentacin
Vectores
Matrices
Funciones

de Matrices
Funciones de Vectores
Ciclos o Bucles
Plotteando en Matlab
Archivos Ejecutables
Subrutinas en Matlab
If
Archivos
Tipos de Datos
Generacin de Reportes
2

Curso Bsico de Matlab

Vectores

Toda lnea que comience con: >>


Es utilizada para denotar la lnea de
comando de Matlab, donde se insertan los
comandos.
Casi todos los comandos bsicos de
Matlab giran en torno al uso de vectores.
Un vector se define poniendo una secuencia
de nmeros dentro de corchetes.
>>v=[3
v
=
3

1]
1

Curso Bsico de Matlab

Vectores
Esto crea un nuevo vector que tiene el
nombre v

El primer elemento del vector es un 3 y el


segundo un 1

Matlab imprime una copia del vector despus


del enter

Si se desea suprimir el resultado, poner un


punto y coma al final de la lnea
>>v=[3

1];
>
>
4

Curso Bsico de Matlab

Vectores
Si se desea ver un vector, escribir el nombre
del vector

>>
v=

v
3

De esta forma, se puede definir un vector


de cualquier
tamao.

>>v=[3 1 7 -21 5 6]
v=
3 1
7

-21

Curso Bsico de Matlab

Vectores
Note que esto produce un vector en forma
de fila. Si se desea crear un vector en forma
de columna, se necesita utilizar la
transpuesta de un vector de fila.
Una transpuesta se define utilizando un
apstrofe

>>v=[3 1 7 -21 5 6]'


v
=
3
1
7
21

5
6
6

Curso Bsico de Matlab

Vectores

Crear un vector con una secuencia de


nmeros con un incremento comn se utiliza
el operador dos puntos :
>>v=[1:8]
v
=
1
2
3

Para utilizar un incremento distinto a uno,


definir se debe
definir el nmero de inicio, el valor del
incremento y el ltimo nmero.

Curso Bsico de Matlab

Vectores
>> v=[2:.25:4]
v=
2.0000 2.2500 2.5000 2.7500 3.0000 3.2500 3.5000 3.7500
4.0000
Acceder

Este

elementos individuales en un vector :


>>v(1)
ans=
2

comando imprime el elemento 1 del vector.


Se ha creado la nueva variable ans
Siempre que se lleva a cabo una accin que no
incluye una asignacin, Matlab pondr la
etiqueta ans en el resultado, es decir lleva un
registro del ltimo resultado.

Curso Bsico de Matlab

Vectores

Una vez que se cre la variable ans, si se


desea ver una transpuesta del resultado:
>>[0:2:8]
ans=
0
2
>>a
ns'
ans= 0
2
4
6
8

Curso Bsico de Matlab

Vectores
Matlab permite ver par tes especficas
del vector.

>>v=[0:2:8]
v=
0
2
4
6
8
>>v(1:3) Se puede utilizar la misma
notacin que para
crear el vector
ans
=
0
2
4
>>v(1:2:4)
ans=
0
4

10

Curso Bsico de Matlab

Vectores

Una vez dominada la notacin,


podemos realizar otras operaciones:
>>v(1:3)-v(2:4)
ans=
-2
-2
-2

En su mayora, Matlab utiliza la notacin


estndar utilizada
en lgebra lineal.

11

Curso Bsico de Matlab

Vectores
Ejemplo: Definir un nuevo vector con los
nmeros de 0 a
-4 en pasos de
-1.

>>u=[0:1:-4]
u
=
0
-1

-2

-3

-4

Sumar u con v :
>>u
+v
ans= 0

12

Curso Bsico de Matlab

Vectores

La multiplicacin y divisin escalar se definen


del siguiente modo:

>>-2*u
ans
=

>>v/3
ans
=

13

0.6667

1.3333

2.0000

Curso Bsico de Matlab

2.6667

Matrices
Definir una matriz es similar a definir un
vector.
Para definir una matriz, se le puede tratar
como una columna de vectores de fila:

>>A=
8]
A=
1
3
6

[1

2
4
7

3
5
8

3;3

5;6

14

Curso Bsico de Matlab

Matrices

Si pierde la nocin de qu variables ha


definido, el comando whos le permitir
conocer todas las variables que tiene en su
workspace.

>> whos
Name
v
>>

Size Bytes Class


Attributes ans
double
1x9 72
double

1x1 8

15

Curso Bsico de Matlab

Matrices
La multiplicacin matriz-vector puede hacerse
fcilmente.
Es importante tener en cuidado de que las
matrices y vectores tengan en tamao
adecuado.

>>v=[0:2:8]
v=
0
2
4
6
8
>>A*v(1:3)
???Error using ==> *
Inner matrix dimensions must agree.
>>A*v(1:
3)' ans=
16
28

16

46

Curso Bsico de
Matlab

Matrices

Es posible trabajar con diferentes partes de


una matriz, del mismo modo que es posible
hacerlo con vectores.
>>A(1:2,3:4)
??? Index exceeds matrix dimensions.
>>A(1:2,2:3)
ans=
2
3
4
5
>>A(1:2,2
:3)' ans=
2
4
3
5
Curso Bsico de Matlab

Funciones de Matrices
Una vez que pueda crear y manipular
matrices, puede llevar a cabo muchas
operaciones estndar sobre ellas.
Ejm.: Encontrar el inverso de una matriz

>>inv(A)
Warning: Matrix is close to singular or
badly scaled. Results may be inaccurate.
RCOND=
3.469447e18. ans=
1.0e+15 *
-2.7022
4.5036
1.8014
5.4043
-9.0072
3.6029

-2.7022

4.5036

-1.8014
Curso Bsico de Matlab

Funciones de Matrices

Otras posibles operaciones incluyen encontrar


una aproximacin de los eigen valores de una
matriz. Hay dos versiones de esta rutina:

Una slo encuentra los eigen valores


La otra encuentra ambos, los eigen valores
y los eigen vectores

>>eig(A)
ans=
14.0664
-1.0664
0.0000
Curso Bsico de Matlab

Funciones de Matrices

>>[v,e] =eig(A)
v=
-0.2656
-0.4912
-0.8295
0.4082 e=
14.0664
0
0

0.7444
0.1907
-0.6399
0
-1.0664
0

-0.4082
0.8165
0
0
0.0000

Curso Bsico de Matlab

Funciones de Vectores
Sumas y restas de vectores.
Ejm.: Definir dos vectores y los sumaremos y
restaremos.

Curso Bsico de Matlab

Funciones de Vectores

Efectuando las operaciones:

Curso Bsico de Matlab

Funciones de Vectores

Efectuando las operaciones:

Curso Bsico de Matlab

Funciones de Vectores

Las multiplicaciones y sumas de vectores


y matrices deben seguir reglas estrictas.

No es posible sumar un vector de fila a un


vector de columna.

En una multiplicacin el nmero de columnas


de la matriz a la izquierda debe ser igual al
numero de filas de la
matriz de la derecha.

Curso Bsico de Matlab

Funciones de Vectores

Curso Bsico de Matlab

Funciones de Vectores

Matlab permite hacer operaciones a cada


elemento de una matriz o vector.

Ejm.: Multiplicar cada elemento en el


vector v con su correspondiente entrada
en el vector b Utilizar el smbolo .*

Es posible colocar un punto delante de cada


smbolo matemtico para indicarle a Matlab
que se desea que la operacin se haga en
cada entrada del vector.

Curso Bsico de Matlab

Funciones de Vectores

Curso Bsico de Matlab

Funciones de Vectores

Si se pasa un vector
a una funcin
matemtica
predefinida,
regresar un vector
del mismo tamao,
donde cada entrada
es encontrada
realizando la
operacin
especificada en la
entrada
correspondiente del
vector original.

28

Curso Bsico de Matlab

Funciones de Vectores

Podemos definir y
manipular
vectores de gran
tamao del mismo
modo que hemos
trabajado vectores
pequeos.

29

Curso Bsico de Matlab

Funciones de Vectores

A travs de esta
misma simple
manipulacin de
vectores, Matlab
permite graficar los
resultados.

30

Curso Bsico de Matlab

Funciones de Vectores

A travs de esta
misma simple
manipulacin de
vectores, Matlab
permite graficar los
resultados.

>> plot(x,y,'rx')

31

Curso Bsico de Matlab

Ciclos o Bucles

Nos permiten repetir ciertos comandos

Todas las estructuras de ciclos en Matlab se


inician con palabras clave como for o
while y terminan con la palabra end

Ciclos for :

Para indicar a Matlab cuando iniciar y cuando


parar, se da un vector en el enunciado for y
Matlab recorrer cada valor en el vector
Curso Bsico de Matlab

Ciclos o Bucles
Por

ejemplo en este
ciclo simple se
ejecutar cuatro
veces, cambiando
cada vez el valor de la
variable j en cada una
de las repeticiones.
Cuando Matlab lee el
enunciado for
construye un vector,
[1:4]
j toma cada valor
dentro del vector, en
orden
El enunciado for
actualizar el valor de

j y repetir los
enunciados que se
encuentren dentro del
ciclo.
33

Curso Bsico de Matlab

Ciclos o Bucles

Definiendo un
vector y cambiando
su contenido
posteriormente.

34

Curso Bsico de Matlab

Ciclos o Bucles

Realizar operaciones
en las filas de una
matriz. Iniciar en la
segunda fila de la
matriz y substraer la
fila previa de la
matriz y
repetir esta operacin en
las siguientes filas.

35

Curso Bsico de Matlab

Ciclos o Bucles

Curso Bsico de Matlab

Ciclos o Bucles

Ciclo while:

Repite
una
secuencia
de
comandos mientras
una condicin se
cumpla.

37

Curso Bsico de Matlab

Plotteando en Matlab
El comando plot es utilizado para generar
plots en Matlab
Acepta una gran variedad de argumentos
Ejm. : Si solo queremos un plot, le damos
el rango, el dominio y el formato
>>
plot(x,y,'go')
Si queremos plottear mas de una grfica
en una sola imagen utilizamos el comando
subplot.
Matlab tratara a la ventana como un arreglo
de plots.

Curso Bsico de Matlab

Plotteando en Matlab

Una ventana con una


fila y dos columnas,
dndonos 2 plots.

39

Curso Bsico de Matlab

Plotteando en Matlab

El comando clf nos


permite limpiar
completamente la
figura actual.

40

Curso Bsico de Matlab

Plotteando en Matlab

Para darle un ttulo a


nuestro plot,
utilizamos la funcin
title.

Para
darle
una
etiqueta al eje x
utilizamos la funcin
xlabel.

Para
darle
una
etiqueta al eje y
utilizamos la funcin

ylabel.
41

Curso Bsico de Matlab

Plotteando en Matlab

Curso Bsico de Matlab

Plotteando en Matlab

Para imprimir un archivo postscript del


plot actual se utiliza el comando print.
Ejm. : Crear un archivo postscript llamado
error.ps que resida en el directorio actual
print dps
error.ps print
dpdf error.pdf
print djpg
error.jpg

Si pasamos error.ps a PDF, vemos lo


siguiente:

Curso Bsico de Matlab

Plotteando en Matlab

Curso Bsico de Matlab

Archivos Ejecutables
Primero,

necesitamos crear un archivo.


El mejor editor es utilizar el editor integrado de Matlab.
Permite

hacer manipulaciones sencillas del archivo


Editor muy simple y fcil de iniciar.
No es un editor muy avanzado.
Los archivos ejecutables de Matlab tienen la extensin *.m

En este ejemplo crearemos el archivo rectangle_area.m

continuacin, Matlab buscara en el directorio actual por el


archivo
rectangle_area, leera el archivo y ejecutar los comandos
en l
Si Matlab no puede encontrar el archivo, lanzar el mensaje
de error : ???
Undefined function or variable 'rectangle_area
En este caso, se escribi mal el nombre del programa, el nombre
del programa es erroneo o el archivo se encuentra en un
directorio que Matlab no conoce
En el ltimo caso, se debe indicar a Matlab en qu directorio
buscar

La

lista de directorios en los que se buscan archivos se llama

path

Curso Bsico de Matlab

Archivos Ejecutables
Primero,

necesitamos crear un archivo.


El mejor editor es utilizar el editor integrado de Matlab.
Permite

hacer manipulaciones sencillas del archivo


Editor muy simple y fcil de iniciar.
No es un editor muy avanzado.
Los archivos ejecutables de Matlab tienen la extensin *.m

En este ejemplo crearemos el archivo rectangle_area.m

continuacin, Matlab buscara en el directorio actual por el


archivo
rectangle_area, leera el archivo y ejecutar los comandos
en l
Si Matlab no puede encontrar el archivo, lanzar el mensaje
de error : ???
Undefined function or variable 'rectangle_area
En este caso, se escribi mal el nombre del programa, el nombre
del programa es erroneo o el archivo se encuentra en un
directorio que Matlab no conoce
En el ltimo caso, se debe indicar a Matlab en qu directorio
buscar

La

lista de directorios en los que se buscan archivos se llama

path

Curso Bsico de Matlab

Archivos Ejecutables
Para desplegar el path de bsqueda,
escribir path

Curso Bsico de Matlab

Archivos Ejecutables

Para utilizar el editor de Matlab para crear


el archivo, escribir :
>> edit rectangle_area.m
Matlab nos preguntara si deseamos crear el
archivo, a lo que indicaremos que si:

Curso Bsico de Matlab

Archivos Ejecutables

Una vez que el editor aparezca en la


pantalla, escribir las siguientes lneas de
comandos:

Curso Bsico de Matlab

Archivos Ejecutables
Salvar

el archivo e ir a la ventana de
comandos y mandar llamar el archivo
escribiendo el nombre del mismo:

En

este momento, deberemos obtener el siguiente


error:

Si

se trata de llamar el archivo sin haber definido


primero las variables b y h, se obtendr un
mensaje de error.
Es impor tante antes de mandar llamar el archivo,
definir todas las variables que no estn definidas
dentro del mismo.

Curso Bsico de Matlab

Archivos Ejecutables

Curso Bsico de Matlab

Archivos Ejecutables

Una vez que las variables necesarias se han


definido, se puede escribir el comando
rectangle_area

Matlab buscara en el directorio actual por


un archivo llamado rectangle_area.m

Una vez que encuentre el archivo, lo lee y


ejecuta los comandos como si hubieran
sido escritos desde el teclado.

Curso Bsico de Matlab

Subrutinas en Matlab

En ocasiones, se desea repetir una


secuencia de comandos pero se desea
poder hacerlo con distintos vectores y
matrices.

Una forma de poder hacerlo es utilizando


subrutinas.

Las subrutinas son como los archivos


ejecutables pero se le pueden pasar
distintos vectores y matrices a utilizar.

Curso Bsico de Matlab

Subrutinas en Matlab

Curso Bsico de Matlab

Subrutinas en Matlab

Para mandar
llamar la
subrutina:

55

Curso Bsico de Matlab

Subrutinas en Matlab

Si
deseamos
devolver ms de un
resultado, podemos
hacerlo
indicando la lista de
resultados a devolver
de la siguiente
forma:

56

Curso Bsico de Matlab

Subrutinas en Matlab

De este modo,
podemos mandar
llamar nuestra
funcin devolviendo
solamente un
resultado (el rea en
este ejemplo) o
ambos (tanto el rea
como el volumen)

57

Curso Bsico de Matlab

If

En algunas ocasiones queremos que


ciertas partes de nuestro programa sean
ejecutadas nicamente bajo ciertas
circunstancias
La forma de hacer esto es utilizar un
enunciado if, cuya estructura bsica vemos
a continuacin:

Curso Bsico de Matlab

If
Una estructura condicional mas
complicada:

Curso Bsico de Matlab

If

Las condiciones son enunciados booleanos y


se pueden hacer comparaciones estndar.

Las comparaciones vlidas incluyen:

< Menor que


> Mayor que
<=Menor igual que
>=Mayor igual que
==Igual
=No es igual

Curso Bsico de Matlab

If
Hacer que la variable j sea igual a -1 si a es
menor que b

Hacer que la variable j sea igual a -1 si a es


menor que b y
2 si es mayor que b

Curso Bsico de Matlab

If

Hacer que la variable j sea igual a 3 si no


se cumple ninguna condicin

Curso Bsico de Matlab

If

Se pueden comprobar mltiples expresiones


booleanas utilizando los operadores
estndar "&" (and), | (or) y (not).

Curso Bsico de Matlab

Archivos

Conforme se trabaja en una sesin, se


generan matrices y vectores

El comando utilizado para guardar TODOS


los datos de una sesin es save.

El comando utilizado para traer el


conjunto de datos guardado en un archivo
a la sesin es load.

Curso Bsico de Matlab

Archivos
Guardar

todos los datos presentes en la sesin en


un archivo llamado todo.mat (*.mat es la
extensin para los datos Matlab)

ls

es el comando para listar todos los archivos en


el directorio actual.
En este caso hemos creado el archivo todo.mat
que contiene a los vectores u y v.
Curso Bsico de Matlab

Archivos

Los datos pueden ser cargados de nuevo en


Matlab con el comando load.

En este ejemplo, el espacio de datos es


limpiado de todas las variables. El contenido
de todo el archivo todo.mat es
posteriormente cargado a memoria.
Curso Bsico de Matlab

Archivos

No
es
necesario
cargar el total del
contenido
de
un
archivo
a
la
memoria.
Despus de que se
especifica el nombre
del archivo es posible
listar las variables
que se desea cargar
separadas por
espacios
Solamente cargar la
variable u en la

memoria.
67

Curso Bsico de Matlab

Archivos
El

comando save funciona exctamente de la misma forma


Si solamente se desea guardar un par de variables, se
enlistan dichas variables despus del nombre del
archivo separadas por espacios
Para conocer ms informacin sobre save, escribir help save
Hay varias opciones para formato del archivo, etc.
Matlab permite guardar los datos generados en una sesin
utilizando el comando diary.
No quedan guardados para poder ser ejecutados como un
archivo ejecutable
Es til para entregar tareas o para tomar notas.

El

diario de una sesin:


Es iniciado con el comando diary seguido del nombre del
archivo en donde se guardara el texto.
Seguido de todos los comandos que formarn el diario
Al finalizar, escribir el comando diary solo, lo que escribir una
copia exacta de la sesin en el archivo y lo cerrar.

Curso Bsico de Matlab

Archivos

Generar un diario en el archivo diario.txt

Curso Bsico de Matlab

Archivos
El contenido del archivo diario.txt es el
siguiente:

Curso Bsico de Matlab

Tipos de Datos

Enteros
Strings
Booleanos
Celdas
Estructuras
Variables Simblicas
Objetos

71

Curso Bsico de Matlab

Tipos de Datos

Conversiones entre tipos de datos:

Curso Bsico de Matlab

Generacin de Reportes
Una vez que terminamos nuestro programa,
en ocasiones deseamos generar un repor te
del mismo ya sea en HTML,Word, PPT, LaTeX,
etc...
Matlab provee ayuda para realizar este tipo
de reportes.
El script sobre el que queremos hacer nuestro
reporte:

Curso Bsico de Matlab

Generacin de Reportes

Ir al men Cell dar click en Enable Cell Mode

Para colocar el ttulo utilizar %% lo que


automticamente cambia el color de fondo
identificando la celda

Posteriormente, con % indicamos la


descripcin.

Curso Bsico de Matlab

Generacin de Reportes

Para crear otra celda %%

Colocaremos de este modo la descripcin de


cada etapa de este script.

Curso Bsico de Matlab

Generacin de Reportes

Una vez que ya escribimos todas las


descripciones, dar click en la flecha que
aparece al lado del icono
lo
que nos lleva al editor de configuracin de
las publicaciones.

Ah encontramos los distintos formatos


de salida y caractersticas de ellos.
Al momento de realizar la publicacin hace
correr el script tambin.

Ejm. : Publicacin en HTML

Curso Bsico de Matlab

Generacin de Reportes

Curso Bsico de Matlab

Generacin de Reportes

Para el caso de HTML, si se desea utilizar :


Negritas Colocar el texto entre asteriscos
*texto*
Italicas Colocar el texto entre guiones bajos
_texto_

Curso Bsico de Matlab

Generacin de Reportes

Para insertar
una ecuacin:

79

Click derecho
Inser t Text
Markup
Tex Equation

Curso Bsico de Matlab

Generacin de Reportes

Nos despliega una ecuacin default


Para conocer las opciones que tenemos
para editar las ecuaciones Tex:

En la documentacin escribir text properties


Seleccionar la segunda opcin
Bajar hasta encontrar las opciones para Tex

Curso Bsico de Matlab

Generacin de Reportes

Curso Bsico de Matlab

Generacin de Reportes
Generando el cdigo LaTeX para la
publicacin:

Curso Bsico de Matlab

Generacin de Reportes

Copiando los resultados de las frmulas en


LaTeX en el lugar donde se coloca la
ecuacin en nuestro script nos queda:

Al publicar, las frmulas se ven as:

Curso Bsico de Matlab

You might also like