You are on page 1of 51

Qu es MATLAB?

MATLAB es el nombre abreviado de MATRIZ LABORATORY. Es un programa que sirve para


realizar clculos numricos con vectores y matrices, y por tanto se puede trabajar tambin con
nmeros escalares (tanto reales como complejos), con cadenas de caracteres y con otras
estructuras de informacin ms complejas.
MATLAB es un lenguaje de alto rendimiento para clculos tcnicos y, al mismo tiempo, un entorno
y un lenguaje de programacin. Uno de sus puntos fuertes es que permite construir nuestras
propias herramientas reutilizables. Podemos crear fcilmente nuestras propias funciones y
programas especiales (conocidos como M-archivos) en cdigo MATLAB, los podemos agrupar en
Toolbox (tambin llamadas libreras): coleccin especializada de M-archivos para trabajar en clases
particulares de problemas.
MATLAB, a parte del clculo matricial y lgebra lineal, tambin puede manejar polinomios,
funciones, ecuaciones diferenciales ordinarias, grficos, etc.
Replegar

Tabla de contenidos
Qu es MATLAB?
1. Caractersticas bsicas
1.1 El espacio de trabajo de Matlab
1.2 Matemtica sencilla
Ejemplos
1.3 Almacenar y recuperar datos
1.4 Formato de visualizacin de nmeros

1.5 Acerca de las variables


1.6 Otras caractersticas bsicas
2. Ayuda en lnea
3. Funciones matemticas comunes
3.1 Aproximaciones
3.2 Trigonometra
3.3 Algunas operaciones
4.Vectores y Matrices.
4.1 Direccionamiento de elementos de Vectores y Matrices.
4.2 Construccin abreviada de algunos vectores.
4.3 Construcci'on de algunas matrices.
4.4 Operaciones bsicas con Matrices.
4.5 Funciones para operar con vectores.
5. Texto
6. Hipermatrices (arrays de ms de dos dimensiones)
6.1 Definicin de Hipermatrices
6.2 Funciones que trabajan con hipermatrices
7. Estructuras
7.1 Creacin de estructuras
7.2 Funciones para operar con estructuras
8. Vectores o Matrices de celdas (Cell Arrys)
8.1 Creacin de vectores y matrices de celdas.
8.2 Funciones para trabajar con vectores y matrices de celdas.
8.3 Conversin entre estructuras y vectores de celdas.
9. Operadores relacionales y lgicos
9.1 Operadores relacionales
9.2 Operadores lgicos
9.3 Funciones relacionales y lgicas adicionales
9.4 Orden de precedencia de los operadores:
10. Grficos
10.1 Grficas 2D en Matlab
10.2 Grficos 3D en Matlab
11. Programacin de MATLAB
11.1 Sentencia FOR
11.2 Sentencia WHILE
11.3 Sentencia IF
11.4 Sentencia BREAK
11.5 Sentencia CONTINUE
12. Funciones en M-archivos.
13. Anlisis de datos
14. Polinomios
15. Anlisis numrico
15.1 Representacin grfica
15.2 Minimizacin

15.3 Localizacin de ceros


16. Convertir un fichero (*.m) en un ejecutable(*.exe).
17. Importar y exportar ficheros de datos.
18. Ejercicios propuestos.
19. Comandos que aparecen en esta guia.

1. Caractersticas bsicas
1.1 El espacio de trabajo de Matlab
Una vez iniciado MATLAB aparecer una pantalla como la que se muestra a continuacin:

Todas las sentencias que vamos a utilizar las escribiremos en la ventana Command
Window (ventana de comandos). Es la ventana de mayor tamao.
Si queremos informacin acerca de las variables que estamos utilizando en MATLAB podemos
verlas en la ventana Workspace (espacio de trabajo) o usar:
who para obtener la lista de las variables (no de sus valores)
whos para obtener la lista de las variables e informacin del tamao, tipo y atributos
(tampoco da valores)
Para ver esta ventana tenemos que pinchar en la pestaa que tiene este nombre. Est en la parte
superior izquierda:

Si lo que se pretende es conocer el valor que tiene una variable lo que hacemos es escribir el
nombre de la variable y pulsar Intro.
Para recordar rdenes previas usamos las flechas del teclado y . Tambin podemos verlas en la
ventana Command History, ventana situada en la parte inferior izquierda:

1.2 Matemtica sencilla


MATLAB ofrece la posibilidad de realizar las siguientes operaciones bsicas:

Operacin

Smbolo

Expresin en Matlab

Suma

a+b

Resta

a-b

Multiplicacin

a*b

Divisin

a/b

Potencia

a^b

El orden de precedencia ser:


1. Potencia (^),
2. Multiplicacin (*) y divisin (/),
3. Sumas (+) y restas (-).
Adems, hay que tener en cuenta que MATLAB no tiene en cuenta los espacios.
Si queremos que MATLAB evale la lnea pero que no escriba la respuesta, basta escribir punto y
coma (;) al final de la sentencia.
Si la sentencia es demasiado larga para que quepa en una sola lnea podemos poner tres
puntos () seguidos de la tecla Intro para indicar que contina en la lnea siguiente.

Ejemplos
> >a=7 % Damos valor a la variable y la escribe por pantalla
a=
7
> >b=4 ; % En este caso, no escribe el valor de b ya que hemos puesto un (;) al fina
> >a+b % realiza la suma de las dos variables y guarda la solucin en la variable ans
ans=
11
En MATLAB :

1.3 Almacenar y recuperar datos


MATLAB permite guardar y cargar datos de los archivos del ordenador. En el men File, la
opcin Save Workspace as guarda todas las variables actuales y Import Data carga variables
de un espacio de trabajo guardado previamente.
Otra forma sera guardar el estado de una sesin de trabajo con el comando save antes de salir de
la siguiente manera:
> > save
Al teclear esto, automticamente se crea un fichero llamado matlab.mat. Puede recuperarse la
siguiente vez que se arranque el programa con el comando load:
> > load

1.4 Formato de visualizacin de nmeros


MATLAB no cambia la representacin interna de un nmero cuando se escogen distintos formatos,
slo se modifica la forma de visualizarlo.

Tipo

Resultado

Ejemplo: > > pi

format
short

Formato coma fija con 4 dgitos despus de la coma

3.1416

format long

Formato coma fija con 14 o 15 dgitos despus de la


coma

3.14159265358979

format
short e

Formato coma flotante con 4 dgitos despus de la


coma

3.1416e+000

format long
e

Formato coma flotante con 14 o 15 dgitos despus


de la coma

format
short g

La mejor entre coma fija o flotante con 4 dgitos


despus de la coma

3.1416

format long
g

La mejor entre coma fija o flotante con 14 o 15


dgitos despus de la coma

3.14159265358979

format
short eng

Notacin cientfica con 4 dgitos significativos


despus de la coma y un exponente de 3

3.1416e+000

format long
eng

Notacin cientfica con 16 significativos dgitos


despus de la coma y un exponente de 3

3.141592653589793e+00

format
bank

Formato coma fija con 2 dgitos despus de la coma

3.14

format hex

Hexadecimal

400921fb54442d18

format rat

Aproximacin racional

355/113

format +

Positivo, negativo o espacio en blanco

3.141592653589793e+00
0

1.5 Acerca de las variables


MATLAB almacena el ltimo resultado obtenido en la variable ans.
Las variables son sensibles a las maysculas, deben comenzar siempre con una letra, no pueden
contener espacios en blanco y pueden nombrarse hasta con 63 caracteres (en versiones anteriores
no permita tantos caracteres). Si se nombra una variable con ms de 63 caracteres truncar el
nombre de dicha variable.
Algunas variables especiales de MATLAB:
Tecleando clear podemos borrar todas las variables del espacio de trabajo, pero no borra
lo de las dems ventanas, es decir, no desaparece lo que hay escrito en la ventana de
comandos.
Tecleando clc borramos lo que hay en la ventana de comandos pero no borra las variables
de la memoria del espacio de trabajo.
Algunos comandos de MATLAB nos facilitan informacin sobre la fecha,
como clock, date o calendar.

1.6 Otras caractersticas bsicas


Los comentarios se escriben despus del smbolo de tanto por ciento (%), de este modo todo lo
que se escriba a continuacin en la misma lnea no ser ledo por MATLABPodemos colocar
varias rdenes en una lnea si se separan correctamente, puede ser:
por comas (,) que hacen que se visualicen los resultados
puntos y comas (;) que suprimen la impresin en pantalla
Para cerrar MATLAB podemos hacerlo tecleando quit, cerrando con el aspa tpica de Windows,
entrando en File->Exit Matlab o con las teclas Ctrl+Q.

2. Ayuda en lnea
MATLAB proporciona asistencia de varios modos.
Si queremos consultar un comando determinado podemos buscar informacin escribiendo en la
ventana de comandos help <comando a consultar>, o simplemente help. Tambin podemos
abrir la ventana de ayuda con el ratn o con la tecla F1. Una vez abierta esta ventana podemos
buscar por contenidos, palabras concretas, demostraciones
Por ltimo con la orden lookfor <palabra>, busca en todas las primeras lneas de las ayudas de
los temas de MATLAB y devuelve aquellos que contienen la palabra clave que hemos escrito. No
es necesario que la palabra clave sea una orden de MATLAB.

3. Funciones matemticas comunes


3.1 Aproximaciones
Funcin

Qu hace?

Ejemplo x=5.92

ceil (x)

redondea hacia infinito

fix (x)

redondea hacia cero

floor (x)

redondea hacia menos infinito

round (x)

redondea hacia el entero ms prximo

(Con x escalar, vector o matriz, pero redondeara en cada caso los elementos individualmente)

3.2 Trigonometra
Funci
n

Qu hace?

(x)

Funcin trigonomtrica con el ngulo expresado en radianes

sin (x)

seno (radianes)

cos (x)

Coseno

tan (x)

Tangente

csc (x)

Cosecante

sec (x)

Secante

cot (x)

Cotangente

d (x)

Funcin trigonomtrica con el ngulo expresado en grados

sind (x)

seno (grados)

h (x)

Funcin trigonomtrica hiperblica con el ngulo expresado en radianes

sinh (x)

seno hiperblico

a (x)

Inversa de la funcin trigonomtrica con el resultado expresado en radianes

asin (x)

arco seno (radianes)

a d
(x)

Inversa de la funcin trigonomtrica con el resultado expresado en grados

asind
(x)

arco seno (grados)

ah

Inversa de la funcin trigonomtrica hiperblica con el resultado expresado en


radianes

asinh
(x)

arco seno hiperblico (radianes)

3.3 Algunas operaciones


Funcin

Qu hace?

abs (x)

Valor absoluto o magnitud de un nmero complejo

sign (x)

Signo del argumento si x es un valor real

exp (x)

Exponencial

gcd (m,n)

Mximo comn divisor

lcm (m,n)

Mnimo comn mltiplo

log (x)

Logaritmo neperiano o natural

log2 (x)

Logaritmo en base dos

log10(x)

Logaritmo en base diez

mod (x,y)

Mdulo despus de la divisin

rem (x,y)

Resto de la divisin entera

sqrt (x)

Raz cuadrada

nthroot (x,n)

Raz n-sima de (x)

(x e y cualquier escalar, m y n enteros)

4.Vectores y Matrices.
Para crear un vector introducimos los valores deseados separados por espacios (o comas) todo
ello entre corchetes []. Si lo que queremos es crear una matriz lo hacemos de forma anloga pero
separando las filas con puntos y comas (;).
Ejemplos:
> > x = [1 2 3 4 5] es un vector, los elementos los separamos con espacios
x=
12345
> > y = [2,1,3,7] otro vector con los elementos separados con comas
y=
2137
> > A = [1 2 3; 4 5 6] % es una matriz con 2 filas y 3 columnas
A=
123
456

4.1 Direccionamiento de elementos de Vectores y Matrices.


Para acceder a los elementos individuales de un vector lo haremos utilizando subndices, as x(n)
sera el n-simo elemento del vector x. Si queremos acceder al ltimo podemos indicarlo usando
end como subndice.
> > x = [5 7 -2 4 -6];
> > x (2) % segundo elemento del vector x
ans =
7
> > x (end) % ltimo elemento del vector x
ans =
-6
Para acceder a un bloque de elementos a la vez, se usa la notacin de dos puntos (:), as x (m:n)

nos da todos los elementos desde el m-simo hasta el n-simo del vector x.
> > x (2:4) % devuelve desde el segundo al cuarto elemento del vector x
ans =
7 -2 4
Para acceder a los elementos de una matriz necesitamos dar dos valores, el primero indica la fila y
el segundo la columna.
> > A = [1 2 3; 4 5 6];
> > A (2,1) % elemento de la matriz que est en la fila 2 y en la columna 1
ans =
4
Si queremos que escriba toda una fila usaremos los dos puntos para indicar que queremos todos
los elementos.
> > A (2,:) % escribe la segunda fila de la matriz
ans =
456
Y similar si queremos que escriba toda una columna pero ahora situamos los dos puntos en el
lugar de las filas para indicar que queremos todas las filas de esa columna.
> > A (:,2) % escribe la segunda columna de la matriz
ans =
2
5
Al igual que con los vectores podemos indicar que escriba una serie de filas o columnas, la manera
de hacerlo sera muy parecido.
> > A (2,2:3) % escribe de la segunda fila de la matriz, las columnas de la 2 a la 3
ans =
56
> > A (2, [3 1] ) % escribe de la segunda fila de la matriz, las columnas 3 y 1
ans =
64

4.2 Construccin abreviada de algunos vectores.


A parte de definir un vector introduciendo cada uno de sus elementos, tambin podemos crearlo
haciendo uso de las siguientes sentencias:

Nombre
vector

Descripcin

(a:b)

Crea un vector que comienza en el valor a y acaba en el valor b aumentando


de 1 en 1.

(a:c:b)

Crea un vector que comienza en el valor a y acaba en el valor b aumentando

de c en c.
linspace
(a,b,c)

Genera un vector linealmente espaciado entre los valores a y b con c


elementos.

linspace (a,b)

Genera un vector linealmente espaciado entre los valores a y b con 100


elementos.

logspace
(a,b,c)

Genera un vector logartmicamente espaciado entre los valores 10^a y 10^b


con c elementos.

logspace
(a,b)

Genera un vector logartmicamente espaciado entre los valores 10^a y 10^b


con 50 elementos.

4.3 Construcci'on de algunas matrices.


Al igual que pasa con los vectores, existen unas sentencias que nos ayudan a crear ms
rpidamente algunas matrices que Matlab ya tiene predefinidas (m y n deben tomar valores
naturales):

Nombre
matriz

Descripcin

zeros (n)

Crea una matriz cuadrada n x n de ceros.

zeros (m,n)

Crea una matriz m x n de ceros.

ones (n)

Crea una matriz cuadrada n x n de unos.

ones (m,n)

Crea una matriz m x n de unos.

rand (n)

Crea una matriz cuadrada n x n de nmeros aleatorios con distribucin


uniforme (0,1).

rand (m,n)

Crea una matriz m x n de nmeros aleatorios con distribucin uniforme (0,1).

randn (n)

Crea una matriz cuadrada n x n de nmeros aleatorios con distribucin normal


(0,1).

randn (m,n)

Crea una matriz m x n de nmeros aleatorios con distribucin normal (0,1).

eye (n)

Crea una matriz cuadrada n x n de unos en la diagonal y ceros el resto.

eye (m,n)

Crea una matriz m x n de unos en la diagonal y ceros el resto.

4.4 Operaciones bsicas con Matrices.


Smbolo

Expresin

A+B

Suma de matrices

AB

Resta de matrices

A*B

Multiplicacin de matrices

.*

A .* B

Multiplicacin elemento a elemento de matrices

A/B

Divisin de matrices por la derecha

./

A ./ B

Divisin elemento a elemento de matrices por la derecha

A\B

Divisin de matrices por la izquierda

.\

A .\ B

Divisin elemento a elemento de matrices por la izquierda

A^n

Potenciacin (n debe ser un nmero, no una matriz)

.^

A .^ B

Potenciacin elemento a elemento de matrices

'

A'

.'

A .'

=Trasposicin compleja conjugada


Trasposicin de matrices

Ejemplos:
Definimos tres matrices para poder hacer operaciones entre ellas.
A=B=C=

1 2 1 1 1.0000 + 1.0000i 2.0000 + 2.0000i


3 4 0 1 3.0000 + 1.0000i 4.0000 + 7.0000i
> > A * B % multiplicacin de matrices
ans =
13
37
> > A .* B % multiplicacin elemento a elemento
ans =
12
04
> > C ' % traspuesta conjugada
ans =
1.0000 - 1.0000i 3.0000 - 1.0000i
2.0000 - 2.0000i 4.0000 - 7.0000i
> > C .' % traspuesta
ans =
1.0000 + 1.0000i 3.0000 + 1.0000i
2.0000 + 2.0000i 4.0000 + 7.0000i
> > A + 2 % si sumamos el nmero 2 a la matriz se suma ese nmero a cada elemento
ans =
34
56

4.5 Funciones para operar con vectores.


Funcin Qu hace?
cross (x,y) producto vectorial entre los vectores x e y
dot (x,y) producto escalar entre los vectores x e y
Ejemplos:
> > x = [1 2 3]; y = [4 5 6];
> > cross (x,y) % producto vectorial
ans =
-3 6 -3
> > dot (x,y) % producto escalar
ans =
32

5. Texto
La potencia de MATLAB proviene de su capacidad para manipular nmeros, pero en ocasiones es
deseable manipular texto, como suceda cuando colocamos etiquetas o ttulos en las grficas. En
MATLAB las cadenas de caracteres, o simplemente cadenas, son simplemente texto
entrecomillado y se manejan como vectores filas

prueba='Esto es una cadena de caracteres';


prueba
prueba =
Esto es una cadena de caracteres
pruebainversa=prueba(length(prueba))
pruebainversa = 5
seretcarac ed anedac anu se otsE
De este modo, son posibles manipulaciones matemticas entre cadenas, sin embargo, los arrays
obtenidos no se visualizaran como cadenas, sino como arrays nmericos usandose el estandar
ASCII para ello.
doble =2*prueba
doble =
Columns 1 through 12
138 230 232 222 64 202 230 64 234 220 194 64
Columns 13 through 24
198 194 200 202 220 194 64 200 202 64 198 194
Columns 25 through 32
228 194 198 232 202 228 202 230
%Para ver la representacin ASCII de una cadena
% tomamos su valor absoluto o le sumamos 0
prueba+0
ans =
Columns 1 through 12
69 115 116 111 32 101 115 32 117 110 97 32

Columns 13 through 24
99 97 100 101 110 97 32 100 101 32 99 97
Columns 25 through 32
114 97 99 116 101 114 101 115
abs(prueba)
ans =
Columns 1 through 12
69 115 116 111 32 101 115 32 117 110 97 32
Columns 13 through 24
99 97 100 101 110 97 32 100 101 32 99 97
Columns 25 through 32
114 97 99 116 101 114 101 115
%Un array numrico se puede convertir en su cadena equivalente
%usando la orden setstr
setstr(2*prueba)
ans =
@@@@@

6. Hipermatrices (arrays de ms de dos dimensiones)


MATLAB permite trabajar con hipermatrices es decir, con matrices de ms de dos dimensiones.
Una posible aplicacin es almacenar con un nico nombre distintas matrices del mismo tamao
(resulta una hipermatriz de 3 dimensiones). Los elementos de una hipermatriz pueden ser
nmeros, caracteres, estructuras, y vectores o matrices de celdas. El tercer subndice representa la
tercera dimensin: la profundidad de la hipermatriz.

6.1 Definicin de Hipermatrices

Las funciones que operan con matrices de ms de dos dimensiones son anlogas a las funciones
vistas previamente, aunque con algunas diferencias. Por ejemplo, las siguientes sentencias
generan, en dos pasos, una matriz de 232:
AA(:,:,1)= [1 2 3; 4 5 6] % matriz inicial
AA =
1 2 3
4 5 6
AA(:,:,2)= [2 3 4; 5 6 7] % se aade una segunda matriz
AA(:,:,1) =
1 2 3
4 5 6
AA(:,:,2) =
2 3 4
5 6 7

6.2 Funciones que trabajan con hipermatrices


Algunas funciones de MATLAB para generar matrices admiten ms de dos subndices y pueden
ser utilizadas para generar hipermatrices. Entre ellas estnrand(), randn(), zeros() y ones(). Por
ejemplo, vase la siguiente sentencia y su resultado:
BB=randn(2,3,2)
BB(:,:,1) =
-0.4326 0.1253 -1.1465
-1.6656 0.2877 1.1909
BB(:,:,2) =
1.1892 0.3273 -0.1867
-0.0376 0.1746 0.7258

La funcin cat() permite concatenar matrices segn las distintas dimensiones, como puede verse
en el siguiente ejemplo:
A=zeros (2, 3); B=ones (2, 3);
cat(1,A,B)
ans =
0 0 0
0 0 0
111
11 1
cat (2, A, B)
ans =
000
111
000
111
cat (3, A, B)
ans (:,:,1) =
0 0 0
0 0 0
ans (:,:,2) =
1 1
1 1 1
Todas las funciones de MATLAB que operan sobre escalares ( sin (), cos (), etc.) se aplican
sobre hipermatrices elemento a elemento (igual que sobre vectores y matrices). Las operaciones
con escalares tambin se aplican de la misma manera.

Las funciones que operan sobre vectores ( sum(), max(), etc.) se aplican a matrices
e hipermatrices segn la primera dimensin, resultando un array de una dimensin inferior.
Las funciones matriciales propias del lgebra Lineal ( det(),inv(), etc.) no se pueden aplicar a
hipermatrices. Para poderlas aplicar hay que extraer primero las matrices correspondientes (por
ejemplo, con el operador dos puntos (:)).

7. Estructuras
Una estructura (struct) es una agrupacin de datos de tipo diferente bajo un mismo nombre. Estos
datos se llaman miembros (members) o campos (fields). Una estructura es un nuevo tipo de dato,
del que luego se pueden crear muchas variables (objetos o instances). Por ejemplo, la estructura
alumno puede contener los campos nombre (una cadena de caracteres) y carnet(un nmero).

7.1 Creacin de estructuras


En MATLAB la estructura alumno se crea creando un objeto de dicha estructura. A diferencia de
otros lenguajes de programacin, no hace falta definir previamente el modelo o patrn de la
estructura. Una posible forma de hacerlo es crear uno a uno los distintos campos, como en el
ejemplo siguiente:
alu .nombre='Miguel'
alu =
nombre: 'Miguel
alu .carnet=75482
alu =
nombre: 'Miguel'
carnet: 75482
alu
alu =
nombre: 'Miguel'
carnet: 75482
Se accede a los miembros o campos de una estructura por medio del operador punto (.), que une
el nombre de la estructura y el nombre del campo (por ejemplo: alu.nombre).Tambin puede
crearse la estructura por medio de la funcin struct(), como por ejemplo,

al = struct ('nombre', 'Ignacio', 'carnet', 76589)


al =
nombre: 'Ignacio'
carnet: 76589
Los nombres de los campos se pasan a la funcin struct () entre apstrofos ('), seguidos del
valor que se les quiere dar. Este valor puede ser la cadena vaca ('') o la matriz vaca ([]).Pueden
crearse vectores y matrices (e hipermatrices) de estructuras. Por ejemplo, la sentencia,
alum(10) = struct ('nombre', 'Ignacio', 'carnet', 76589)
crea un vector de 10 elementos cada uno de los cuales es una estructura tipo alumno. Slo el
elemento 10 del vector es inicializado con los argumentos de la funcin struct (); el resto de los
campos se inicializan con una cadena vaca o una matriz vaca. Para dar valor a los campos de los
elementos restantes se puede utilizar un bucle for con sentencias del tipo:
alum(i).nombre='Noelia', alum(i).carnet=77524;

MATLAB permite aadir un nuevo campo a una estructura en cualquier momento. La siguiente
sentencia aade el campo edad a todos los elementos del vector alum, aunque slo se da valor al
campo del elemento 5,
alum(5).edad=18;

Para ver el campo edad en los 10 elementos del vector puede teclearse el comando:
alum.edad

7.2 Funciones para operar con estructuras


Las estructuras de MATLAB disponen de funciones que facilitan su uso. Algunas de estas
funciones son las siguientes:
Fieldnames () devuelve un vector de celdas con cadenas de caracteres que recogen los nombres
de los campos de una estructura
isfield(ST,s) permite saber si la cadena s es un campo de una estructura ST
isstruct(ST) permite saber si ST es o no una estructurar

mfield(ST,s) elimina el campo s de la estructuraST


getfield(ST,s) devuelve el valor del campo especificado. Si la estructura es un array hay que
pasarle los ndices como cell array (entre llaves {}) como segundo argumento
setfield(ST,s,v) da el valor v al campo s de la estructura ST . Si la estructura es un array, hay que
pasarle los ndices como cell array (entre llaves {}) como segundo argumento
MATLAB permite definir estructuras anidadas es decir, una estructura con campos que sean otras
estructuras. Para acceder a los campos de la estructura ms interna se utiliza dos veces el
operador punto (.), como puede verse en el siguiente ejemplo, en el que la estructura clase
contiene un campo que es un vector alum de alumnos,
clase=struct ('curso', 'primero', 'grupo', 'A',
'alum', struct ('nombre', 'Juan', 'edad', 19))
clase =
curso: 'primero'
grupo: 'A'
alum: [1x1 struct]
clase.alum(2). nombre='Mara';
clase.alum(2). edad=17;
clase.alum(2)
ans =
nombre: 'Mara'
edad: 17
clase.alum(1)
ans =
nombre: 'Juan'
edad: 19
Las estructuras se generalizan con las clases y los objetos, que no se vern en este manual.

8. Vectores o Matrices de celdas (Cell Arrys)


Un vector (matriz o hipermatriz) de celdas es un vector (matriz o hipermatriz) cuyos elementos son
cada uno de ellos una variable de tipo cualquiera. En un array ordinario todos sus elementos son
nmeros o cadenas de caracteres. Sin embargo, en un array de celdas, el primer elemento puede
ser un nmero; el segundo una matriz; el tercero una cadena de caracteres; el cuarto una
estructura, etc.

8.1 Creacin de vectores y matrices de celdas.


Obsrvese por ejemplo cmo se crea, utilizando llaves{}, el siguiente vector de celdas,
vc(1)={[1 2 3]}
vc =
[1x3 double]
vc(2)={'mi nombre'}
vc =
[1x3 double] 'mi nombre'
vc(3)={rand(3, 3) }
vc =
[1x3 double] 'mi nombre' [3x3 double]
Es importante que el nombre del vector de celdas vc no haya sido utilizado previamente para otra
variable (si as fuera, se obtendra un error). Si es preciso se utiliza el comando clear. Observe que
para crear un vector de celdas los valores asignados a cada elemento se han definido entre
llaves{}.Otra nomenclatura alternativa y similar, que tambin utiliza llaves, es la que se muestra a
continuacin:
vb{1}=[1 2 3]
vb =
[1x3 double]
vb{2}='mi nombre'
vb =

[1x3 double] 'mi nombre'


vb{3}=rand(3,3)
vb =
[1x3 double] 'mi nombre' [3x3 double]
y tambin es posible crear el vector de celdas en una sola operacin en la forma,
vcc = {[1 2 3], 'mi nombre', rand(3,3)}
vcc =
[1x3 double] 'mi nombre' [3x3 double]

8.2 Funciones para trabajar con vectores y matrices de celdas.


MATLAB dispone de las siguientes funciones para trabajar con cell arrays :

cell(m,n)

crea un cell array vaco de m filas y n columnas

celldisp(ca)

muestra el contenido de todas las celdas de ca

cellplot(ca)

muestra una representacin grfica de las distintas

celdasiscell(ca)

indica si ca es un vector de

celdasnum2cell()

convierte un array numrico en un cell array

cell2struct()

convierte un cell array en una estructura

struct2cell()

convierte una estructura en un cell array

8.3 Conversin entre estructuras y vectores de celdas.


El siguiente ejemplo convierte el cell array vcc creado previamente en una estructura ST cuyos
campos se pasan como argumentos a la funcin cell2struct(). El tercer argumento (un 2) indica que
es la segunda dimensin del cell array (las columnas) la que va a dar origen a los campos de la
estructura. Con posterioridad la estructura ST se convierte en un nuevo cell array llamado vbb,
ST=cell2struct (vb,{'vector','cadena','matriz'},2)

ST =
vector: [1 2 3]
cadena: 'mi nombre'
matriz: [3x3 double]
vbb = struct2cell(ST)' % hay que transponer para obtener una fila
vbb =[1x3 double] 'mi nombre' [3x3 double]
La gran ventaja de las estructuras y los arrays de celdas es que proporcionan una gran
flexibilidad para el almacenamiento de los ms diversos tipos de informacin. El inconveniente es
que se pierde parte de la eficiencia que MATLAB tiene trabajando con vectores y matrices.

9. Operadores relacionales y lgicos


Adems de las operaciones mtemticas tradicionales, MATLAB nos permite realizar operaciones
relacionales y lgicas. El objetivo de estos operadores es proporcionar respuestas a cuestiones
verdadero/falso. MATLAB responde a este tipo de preguntas con 1 (verdadero) 0 (falso).

9.1 Operadores relacionales


Los operadores relacionales de MATLAB son las comparaciones comunes:

significado

Smbolo

Menor que

<

Menor o igual

<=

Mayor que

>

Mayor o igual

>=

Igual a

==

Distinto a

~=

Podemos usar estos operadores para comparar arrays del mismo tamao o comparar un array con
un escalar (entonces se compara cada elemento del array con el escalar) . La salida de las
operaciones lgicas se puede utilizar tambin en operaciones matemticas.

9.2 Operadores lgicos


Los operadores lgicos que proporciona MATLAB son:

Nombre del operado

Smbolo

AND

&

OR

NOT

EXCLUSIVE OR

xor

9.3 Funciones relacionales y lgicas adicionales


Adems de los operadores relacionales y lgicos bsicos anteriores, Matlab proporciona una serie
de funciones relacionales y lgicas adicionales que incluyen:

Devuelve 1 si algn elemento en un vector x es no nulo y devuelve 0 si son todos


nulos, si se trata de una matriz da una respuesta por cada columna

any

Devuelve 1 si todos los elementos en un vector x son no nulos y 0 si existe alguno


nulo y si se trata de una matriz da una respuesta por cada columna

all

Devuelve uno si existe y cero si no existe

exist

Devuelve unos en magnitudes no numricas (NaN) en x

isnan

Devuelve unos en magnitudes infinitas (Inf) en x

sinf

Devuelve unos en valores finitos en x

isfinit
e

9.4 Orden de precedencia de los operadores:

Existe un orden de precedencia para operadores aritmticos, lgicos y relacionales, los siguientes
operadores estn ordenados de mayor a menor precedencia:
1. list item ^ .^ ' .'
2. * / \ .* ./ .\
3. + - ~ +(unario) -(unario)
4. : > < >= <= == ~=
5. | &

10. Grficos
Matlab posee una serie de comandos para crear interfaces grficas de manera muy sencilla.

10.1 Grficas 2D en Matlab


Matlab dispone de funciones grficas de alto y bajo nivel. Las funciones de alto nivel (plot, plot3,
etc.) permiten representar grficamente funciones o conjuntos de datos complejos (en forma de
matrices de coordenadas x, y, z) con una sola llamada a una funcin. Las funciones de bajo nivel
(line, patch, etc.) permiten dibujar grficos elementales (una lnea, un polgono, etc.) o grficos
complicados a base de aadir cada uno de los grficos elementales.
La orden plot genera una grfica. Los argumentos deben ser vectores de la misma longitud.Si
queremos cambiar la apariencia de la grfica basta pinchar en el ltimo botn de la barra de
herramientas y se abrirn unos cuadros en los laterales que nos permitirn ir haciendo los cambios
deseados como darle nombre a los ejes.
Ejemplo: Generar las grficas de la funcin seno y coseno en la misma figura:
> >x=0: pi/100:2*pi;
> >y1=sin(x);
> >y2=cos(x);
> >plot(x,y1,k-)
> >plot(x,y2,r)

Para desactivar hold simplemente se pone hold off.


Para crear una figura nueva usamos el comando figure(n) donde n es el nmero que le vallamos a
asignar a la figura, automticamente la primera que sale es la figura 1. Este comando es muy til
cuando necesitamos hacer ms de una grfica, sin eliminar las anteriores y adems por separado.
Para limpiar la ventana de grficas o figuras hay que escribir clf.

10.2 Grficos 3D en Matlab


Por otro lado, Matlab permite realizar grficas en 3 dimensiones. Las grficas en 3D se definen
mediante matrices y vectores de datos en funcin de que se dibuje una linea o una superficie.
El comando PLOT3D:
Para dibujar grficas de funciones de dos variables se utiliza Plot3D[f,{x,xmin,xmax},{y,ymin,ymax}]
dibuja la funcin f que depende de x e y para los valores de x comprendidos entre xmin y xmax y
los valores de y entre ymin e ymax. Las opciones de Plot3D son las mismas que las de Plot.
Superficies de revolucin:
En versiones anteriores a la 6.0.:Una superficie de revolucin es la superficie que genera una curva
al girar alrededor de un eje. Para dibujarla debemos cargar primero el paquete
"Graphics`SurfaceOfRevolution`".La funcin incluida en este paquete que nos dibuja la superficie
resultado de girar y=f[x] alrededor del eje OY es la siguiente: SurfaceOfRevolution[f,{x,xmin,xmax}].
Tambin podemos girar curvas dadas en ecuaciones paramtricas con:SurfaceOfRevolution[{fx,fy},
{t,tmin,tmax}].
Para grficas de funciones que dependen de dos variables. Z=f(x,y). Veamos, a partir de un
ejemplo, algunos de los comandos de graficacin 3D, como mesh, plot3, surf, etc.

Ejemplo: Dibujar la grfica de la funcin:

> > [x,y]=meshgrid(-10:.5:10);


> > z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+0.1);
meshgrid crea matrices para hacer una malla.
> >pot3(x,y,z)

> >mesh(x,y,z) % Grfica de malla

> >surf(x,y,z) % Grfica de superficie

> > contour(x,y,z) % lneas de contorno

> > surfc(x,y,z) %Grfica de superficie con lneas de contorno

El comando para cambiar los colores de las grficas es colormap:

Cdigo

Escala de colores

jet
HSV
hot
spring
summer
autumn
winter
cool
Existen an ms cdigos de colores, los que faltan son: gray, bone,copper, pink y lines.
Ahora probemos algn cdigo de los anteriores, usaremos Winter. (Seguimos usando la figura que
obtuvimos con el comando surfc, tambin los cdigos se escriben en minsculas, jet, hot etc,
exepto HSV que va con maysculas).
> >colormap(winter)

> >colormap(bone) % Su escala de colores no aparece arriba

11. Programacin de MATLAB


11.1 Sentencia FOR
Una sentencia For tiene esta forma:
for (<sentencia1> ; <expresin> ;<sentencia2>) <sentencia3>
Funciona de la manera siguiente. Primero se ejecuta la sentencia1. Entonces se evala la
expresin. Si es verdadera, se ejecuta la sentencia3; entonces la sentencia2 y luego se evala
nuevamente la expresin. Esto contina hasta que la expresin sea falsa. Puede sonar
complicado. Debes interpretarlo de la manera siguiente. La primera sentencia inicializa el ciclo for.
La expresin prueba si el ciclo debiera terminar. La sentencia2 es la sentencia de paso hacia la
evaluacin del siguiente ciclo. El uso ms comn es para llevar un contador hasta cierto valor.

11.2 Sentencia WHILE


La sentencia while permite ejecutar repetidamente un bloque mientras la condicin sea verdadera.
Una sentencia while es un ejemplo de lo que denominamos declaracin repetitiva, adicionalmente,
puede emplear una clusula opcional else.
Movemos las declaraciones raw_input e if hacia el interior del bucle while y fijamos la variable
detener a False antes de iniciarlo. Primero, comprobamos que la variable detener contiene False,
procedemos a ejecutar el correspondiente bloque while; despus de que se ejecuta el bloque, la
condicin es comprobada otra vez, donde -en este caso- es la variable detener. Si es falsa,
ejecutamos el bloque while otra vez, de lo contrario, continuamos ejecutando el bloque else
opcional si existiera, y nos pasamos a la sentencia siguiente en el bloque que contiene la sentencia
while. El bloque else es ejecutado cuando el bucle while se convierte en True, esta podra ser la
primera vez que la condicin es comprobada. Si hay una sentencia else para un bucle while, se
ejecutar siempre, a menos que tengas uno que se encuentre en una forma cclica sin poder
romperla! Las variables especiales True y False asignan simplemente el valor 1 y 0
respectivamente. Usa True y False en vez de 1 y 0 dondequiera que tenga ms sentido, como es el
caso del ejemplo mostrado arriba. El bloque else es realmente redundante, puesto que puedes
poner esas sentencias en el mismo bloque que contiene la sentencia while, ya que tendra el
mismo efecto.

11.3 Sentencia IF

Una parte importante de cualquier lenguaje de programacin son las sentencias condicionales. La
sentencia ms comn en Matlab es if, la cual tiene varias formas de uso. La forma ms simple de
la sentencia if es:
if (expresin lgica) sentencia
Lo anterior tiene que ser escrito en una sola lnea.
El flujo de ejecucin es de arriba hacia abajo. Las expresiones condicionales son evaluadas en
secuencia hasta que se encuentra una que es verdadera. Entonces el cdigo asociado es
ejecutado y el control salta a la siguiente sentencia despus de la sentencia endif.
Sentencias if anidadas: La sentencia if puede ser anidada varios niveles. Se debe evitar anidar
muchos niveles de sentencias if ya que es difcil de seguir.

11.4 Sentencia BREAK


La sentencia break se utiliza para terminar la ejecucin de bucles o salir de una sentencia switch.
Es necesaria en la sentencia switch para transferir el control fuera de la misma. En caso de bucles
anidados, el control se transfiere fuera de la sentencia ms interna en la que se encuentre, pero no
fuera de las externas. Para el caso de un bucle el efecto de un break es anlogo: el bucle se
interrumpe cuando se encuentra con tal sentencia, es decir, se deja de iterar y se contina
ejecutando lo que hubiese despus del bucle (si hay llave de cierre '}', detrs de ella).
Evidentemente un break dentro de un bucle impide su ejecucin, y tal cdigo es seguramente intil.

11.5 Sentencia CONTINUE


Salta por encima de todas las sentencias restantes en el bucle ms interior e inicia la siguiente
repeticin del bucle como si se hubiera pasado el control hasta el final del bucle de la forma
habitual. No tiene ningn efecto fuera de un bucle. En este programa, aceptamos la entrada del
usuario, pero lo procesamos solamente si tiene -por lo menos- 5 caracteres de largo. As pues,
utilizamos la funcin interna len que nos da la longitud de la secuencia; si el valor devuelto por la
funcin len es menos de 3, entonces saltamos el resto de las sentencias en el bloque usando la
declaracin continue, de lo contrario, el resto de las sentencias del bucle se ejecutan. Nota que la
sentencia continue trabaja tambin con el bucle for.

12. Funciones en M-archivos.


Las funciones en MATLAB son programas que toman las variables que se introducen (variables de
entrada), realiza unos clculos y manipulaciones con ellas y devuelve unos resultados (variables de
salida). La estructura general es:
funtion [variables de salida] = nombre funcin (variables de entrada)
MATLAB nos permite crear funciones propias en forma de archivos .m.
Un archivo .m de funcin es similar a un archivo script, al igual que ellos son archivos de texto
creados en un editor de texto. La diferencia entre ambos es que la funcin slo se comunica con el
espacio de trabajo a traves de las variables de entrada y salida, las variables intermedias dentro de
la funcin no aparecen ni interactuan con el espacio de trabajo de MATLAB.

El nombre de la funcin y el nombre del archivo deben ser idnticos y no empezar por cifra sino por
letra
Como ejemplo de funciones propias de MATLAB editemos el archivo fliplr.m
function y = fliplr(x)
% FLIPLR Flip matrix in left/right direction.
% FLIPLR(X) returns X with row preserved and columns flipped
% in the left/right direction.
%
% X = 1 2 3 becomes 3 2 1
%456654
if ndims(x)~=2, error('X must be a 2-D matrix.'); end
[m,n] = size(x);
y = x(:,n:-1:1);

13. Anlisis de datos


Matlab ejecuta anlisis estadstico sobre conjuntos de datos.
Los conjuntos de datos se almacenan en matrices orientadas por columnas.
Matlab incluye las siguiente funciones estadsticas:

Funcin Estadstica

Descripcin

corrcoef(x)

Coeficientes de correlacin

cov(x)

Matriz de covarianza

cumprod(x)

Producto acumulativo de columnas

cumsum(x)

Suma acumulativa de columnas

diff(x)

Calcula las diferencias entre elementos

hist(x)

Histograma o diagrama de barras

mean(x)

Valor medio de columnas

median(x)

Valor de la mediana de columnas

prod(x)

Producto de elementos en columnas

rand(x)

Nmeros aleatorios distribuidos uniformemente

randn(x)

Nmeros aleatorios distribuidos normalmente

sort(x)

Ordenar columnas en orden ascendente

std(x)

Desviacin estndar de columnas

sum(x)

Suma de elementos en cada columna

14. Polinomios
Con MATLAB se puede trabajar con polinomios de forma sencilla. Es suficiente tener en cuenta
que un polinomio no es nada ms que un vector, en que el orden de los coeficientes va de mayor a
menor grado.
Ejemplo
p(x) = 8x4 - 5x3 + x2 + 3x + 4
en Matlab debemos ingresar a p de la siguiente manera
p=[8-5134]p=8-5134
Funciones bsicas:
roots(p): Obtiene races de un polinomio dado
Calcula las races de un polinomio cuyos coeficientes son los elementos del vector p.
Si p tiene N+1 componentes, el polinomio es p(1)*X^N + + p(N)*X + p(N+1).
q=[1-56]q=1-56
roots(q) ans = 3 2

poly(v): Construye un polinomio a partir de sus races


Retorna un vector (polinomio) cuyos elementos son los coeficientes del polinomio cuyas races son
los
elementos de v.
Puede apreciarse que roots y poly son funciones inversas.
v = roots(q) v = 3 2
q =poly(v) q = 1 - 5 6
Si p tiene N+1 elementos, retorna el valor del polinomio al evaluarlo en x.
Es decir y = p(1)* xN + p(2)*xN-1 + + p(N)*x + p(N+1)
conv(p, q): Multiplicacin de polinomios
conv viene de convolucin, en el caso de los vectores convolucionar dos vectores es equivalente a
multiplicarlos.
El resultado es un vector de longitud = longitud(p)+longitud(q)-1
deconv(p, q): Divisin entre polinomios
Se utiliza de la siguiente manera
[Q, R] = deconv(p, q);
Ejemplos.
Para
p=35286q=62178
polyval(p,-1)
% Evaluacin de 3*x^4+5*x^3+2*x^2+8*x+6 en x=-1
ans =
-2
conv(p,q)
% producto de p por q

ans =
1 36 25 78 113 74 78 106 48
deconv(p,q)
% cociente resultado de dividir p entre q
ans =
0.5000
roots(p)
% Raices del polinomio p
ans =
-1.7793
0.4292 + 1.1502i
0.4292 - 1.1502i
-0.7458

15. Anlisis numrico


15.1 Representacin grfica
Existe una funcin que evala cuidadosamente la funcin que se va a representar, y asegura que
todas sus peculiaridades se representan en la grfica de salida. Como entrada, esta funcin
necesita conocer el nombre de la funcin como una cadena de caracteres y el rango de
representacin como un array de dos elementos:
fplot('nombre',[a,b])

15.2 Minimizacin
Para encontrar mnimos de funciones unidimensional y n-dimensional usamos, respectivamente,
las funciones:
fmin('nombre_funcin',a,b)
fmins('nombre_funcin',a)

15.3 Localizacin de ceros


Para buscar el cero de una funcin unidimensional usamos:
fzero('nombre_funcin',a)
donde a es el punto cerca del cual se busca el cero.
A la funcin fzero debe darse el nombre de una funcin cuando se la llama.
Tambin puede utilizarse para encontrar dond una funcin es igual a cualquier constante.
++15.4 Integracin
Matlab proporciona tres funciones para calcular numricamente el rea bajo una funcin sobre un
rango finito: trapz, quad, quad8.
La funcin trapz(x,y) aproxima la integral bajo una funcin al sumar el rea de los trapezoides
formados con los puntos.
Las funciones quad y quad8 realizan aproximaciones de un orden ms elevado que un simple
trapezoide. Funcionan igual que fzero.
++15.5 Diferenciacin
Matlab proporciona una funcin para calcular una aproximacin de la derivada muy poco precisa,
dados los datos que describen alguna funcin. Esta funcin, llamada diff, calcula la diferencia entre
los elementos de un array.
++15.6 Ecuaciones diferenciales
Cuando las ecuaciones diferenciales ordinarias se pueden resolver analticamente, se pueden
utilizar caractersticas del toolbox de matemtica simblica para encontrar soluciones exactas.
Si no se pueden resolver directamente de forma analtica, es conveniente resolverlas
numricamente.
En Matlab, las derivadas se dan mediante un vector columna.
ode23(function_name,t0,tf,y0) y ode45(function_name,t0,tf,y0) integra un conjunto de ecuaciones
diferenciales descritas en la funcin function_name desde un instante
inicial t0, a un instanfe final tf, comenzando con la condici inicial y0.
Ejemplo.

x=[0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1]; %Datos.


y=[-.447 1.987 3.28 .6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2] %Datos.
n=2; %Orden del ajuste.
p=polyfit(x,y,n) %Encuentra los coeficientes del polinomio.
p=
-9.8180 20.1293 -0.0317
xi=linspace (0,1,100)
z=polyval(p,xi); %Evala el polinomio.
ploy(x,y,'o',x,y,xi,z,':')
pd=polyder(p) %Encuentra la derivada.
pd =
-19.6217 20.1293

16. Convertir un fichero (*.m) en un ejecutable(*.exe).


Si queremos convertir un fichero (*.m) en un fichero (*.exe) tenemos que asegurarnos de que sea
una funcin, para eso en la primera lnea del fichero debe aparecer:
function nombre (el nombre de la funcin debe coincidir con el nombre del fichero)
Buscamos en directorio donde hemos guardado el archivo que queremos convertir
usando el comando uf, por ejemplo:
uf 'C:\Documents and Settings\Escritorio\Prueba'
Lo que debemos escribir a continuacin es el comando mcc seguido de m y el nombre del fichero:
mcc -m Trabajo
A continuacin aparecer en el directorio un ejecutable con el nombre Trabajo y una carpeta con
varios archivos
Ejemplo:

Creamos un fichero que va a ser una funcin que a su vez va a llamar a otras dos funciones que
tambin hemos creado nosotros:
Fichero .m:
% trabajo
function trabajo
x = input ('Escribe un nmero: ');
y = input ('Escribe otro nmero: ');
disp ('La suma es')
suma (x,y)
disp ('La resta es')
resta (x,y)
pause %para que no se cierre la ventana automticamente al ejecutarse
Fichero suma.m:
% suma
function m = suma (tt,xx)
m = tt + xx;
Fichero resta.m:
% resta
function m = resta (tt,xx)
m = tt - xx;
Despus de situarnos en el directorio correspondiente escribimos:
mcc -m Trabajo

17. Importar y exportar ficheros de datos.


En el momento de usar un fichero de datos en Matlab sin tener que copiar todos los datos de
nuevo, podemos importarlo, para ello buscamos en workspace un botn que pone (import
data)
, al pinchar en el debemos localizar el fichero que queremos importar y

seleccionarlo en el botn donde pone Abrir. Aparecer una nueva ventana similar a sta:
Pinchamos en el botn Finish y ya tendremos el fichero de datos convertido en una matriz en
Matlab.
Si queremos abrir el fichero solo hay que llamarlo con el nombre con el que lo hemos guardado.
Para exportar una matriz la convertimos en el texto escribiendo lo siguiente:
diary my_data.out

Despus escribimos bien la matriz (o bien la llamamos si ya estuviera almacenada en el


workspace).
Es este caso creamos la matriz A:
A = [0 1;0 1;0 1;0 1;0 1]
01
01
A= 0 1
01
01
Escribimos:
diary off
Ahora para abrirlo buscamos el documento llamado my_data.out que se encuentra en:
C:\Archivos de programa\MATLAB \work
Podemos abrirlo con cualquier editor de texto.

18. Ejercicios propuestos.


Calcula el resultado de sumar 15 y 6:
15+6
ans =
21
Guarda en la variable x el resultado de sumar 15 y 6:
x=15+6
x=
21
Haz que aparezca por pantalla el valor almacenado en la variable x:
x
x=
21

Guarda en la variable y el resultado de multiplicar 12 y 2:


y=12*2
y=
24
Realiza la suma de las variables x e y:
x+y
ans =
45
Guarda en la variable z el resultado de restarle a la variable y la variable x:
z=y-x;
Haz que aparezca por pantalla el valor almacenado en la variable z:
z
z=
3
Calcula el coseno de (tomando el ngulo en radianes):
cos(pi)
ans =
-1
Calcula el coseno de 180 (tomando el ngulo en grados sexagesimales):
cosd(180)
ans =
-1
Calcula la exponencial en 1 (es decir, el nmero e):
exp(1)
ans =
2.7183

Calcula la raz cuadrada de -16:


sqrt(-16)
ans =
0 + 4.0000i
Calcula el resultado de la divisin de 2 entre 3:
2/3
ans =
0.6667
Cambia a formato con 15 decimales:
format long
Vuelve a calcular el resultado de la divisin de 2 entre 3:
2/3
ans =
0.666666666666667
Cambia a formato con solo 4 decimales:
format short
Vuelve a calcular el resultado de la divisin de 2 entre 3:
2/3
ans =
0.6667
Haz que aparezcan por pantalla las variables que ests utilizando:
who
Your variables are:
ans x y z
whos

Name Size Bytes Class Attributes


Ans 1x1 8 double
x 1x1 8 double
y 1x1 8 double
z 1x1 8 double
Borra la variable z:
clear z
Vuelve a hacer que aparezcan por pantalla las variables que ests utilizando:
who
Your variables are:
ans x y
Crea el vector v = (1,2,3,4) de modo que no se vuelva a escribir en pantalla:
v=[1 2 3 4];
Crea el vector w = (5,6,7,8) y deja que lo vuelva a escribir en pantalla:
w=[5 6 7 8]
w=
5678
Calcula el vector traspuesto de v:
v'
ans =
1
2
3
4
Crea un vector llamado v2 donde sus elementos vayan desde el 2 al 17 creciendo de 3 en 3:
v2=2:3:17
v2 =
2 5 8 11 14 17

Crea un vector v3 donde sus elementos vayan desde el 2 al 20 y que en total tenga 10 elementos:
v3=linspace(2,20,10)
v3 =
2 4 6 8 10 12 14 16 18 20
Averigua cul es el cuarto elemento del vector v3:
v3(4)
ans =
8
1234
Crea la matriz M= 5 6 7 8
9 10 11 12
M=[1 2 3 4;5 6 7 8;9 10 11 12]
1234
M= 5 6 7 8
9 10 11 12
Calcula la traspuesta de la matriz M:
M'
ans =
159
2 6 10
3 7 11
4 8 12
Halla la fila 2 de la matriz M:
M(2,:)
ans =
5678
Calcula el rango de M:
rank(M)

ans =
2
Calcula la traza de la matriz M:
trace(M)
ans =
19
Crea la matriz identidad de tamao 4:
eye(4)
ans =
1000
0100
0010
0001
Crea la matriz nula de tamao 3x3:
zeros(3)
ans =
000
000
000
Crea la matriz cuadrada de unos de tamao 2x2:
ones(2)
ans =
11
11
Averigua las dimensiones de la matriz M:
size(M)
ans =
34
Crea una matriz llamada M2 que tenga por diagonal el vector v y el resto sean todo ceros:
M2=diag(v)

M2 =
1000
0200
0030
0004
Haz que aparezca por pantalla la matriz triangular inferior a partir de M:
tril(M)
ans =
1000
5600
9 10 11 0
Haz que aparezca por pantalla la matriz triangular superior a partir de M:
triu(M)
ans =
1234
0678
0 0 11 12
Calcula una matriz que tenga por elementos todos los elementos de la matriz M elevados al
cuadrado:
M.^2
ans =
1 4 9 16
25 36 49 64
81 100 121 144
Elimina de la matriz M su tercera columna:
M(:,3)=[]
M=
124
568
9 10 12
Calcula el determinante de M:

det(M)
ans =
0
Guarda en p el polinomio x3 - x2 - 26x - 24:
p=[1 -1 -26 -24];
Calcula las races del polinomio p:
roots(p)
ans =
6.0000
-4.0000
-1.0000
Evala el polinomio p cuando x = 1:
polyval(p,1)
ans =
-50
Evala el polinomio p en todos los valores del vector w:
polyval(p,w)
ans =
-54 0 88 216
Crea un polinomio q que tenga por races los elementos del vector v:
q=poly(v)
q=
1 -10 35 -50 24
Calcula la multiplicacin de los polinomios p y q:
conv(p,q)
ans =
1 -11 19 151 -596 436 576 -576

Calcula la divisin del polinomio obtenido como solucin entre el polinomio q:


deconv(ans,q)
ans =
1 -1 -26 -24
Escribe por pantalla el valor de los vectores v y w:
v
v=
1234
w
w=
5678
Calcula el producto de los vectores elemento a elemento:
v.*w
ans =
5 12 21 32
Calcula el producto escalar de los vectores v y w:
dot(v,w)
ans =
70
Calcula el producto del vector traspuesto de v con el vector w:
v'*w
ans =
5678
10 12 14 16
15 18 21 24
20 24 28 32
Define el vector x = (-10,-9,-8,,6,7,8) y el vector y que sea el cuadrado de cada elemento:

x=(-10:8); y=x.^2;
Ahora dibuja la grfica formada por esos dos vectores:
plot(x,y)
Guarda en la variable a la palabra guacamole:
a='guacamole';
Haz que aparezca en pantalla la representacin ASCII del valor almacenado en la variable a:
abs(a)
ans =
103 117 97 99 97 109 111 108 101
Crea un pequeo programa que escriba por pantalla BUENOS DAS y a continuacin los 15
primeros nmeros pares (usando un for):
disp('BUENOS DAS')
for i=1:15
disp(2*i)
end
Calcula la derivada de la funcin f(x) = sin (2x) + tan (x2):
diff('sin(2*x)+tan(x^2)')
ans =
2*cos(2*x)+2*(1+tan(x^2)^2)*x

19. Comandos que aparecen en esta guia.


A

abs all angle ans any area asin asind asinh axis

bar barh break

calendar cat ceil cell celldisp cellplot clabel clc clear clock colorbar colormap complex
cond conj continue contour contour3 conv corrcoef cos cot cov cross csc cumprod
cumsum

date deconv det diag diff disp dot double

eig else elseif end eps exist exp expm eye

feval fieldnames fill fill3 find fix fliplr flipud floor fminbnd for format bank format hex format
long format long e format long eng format long g format rat format short format short e
formatshort eng format short g format + fplot function funm fzero

gcd grid

help hilb hist hold on hold off

i if imag inf inv invhilb iqr iscell ischar isempty isequal isfield isfinite isfloat isinf isinteger
islogical isnan isnumeric isprime isreal isscalar isspace isstruct

lcm length linspace load log loglog logm logspace log2 log10 lookfor lu

magic max mcc mean median mesh meshgrid min mod