You are on page 1of 28

MATLAB

Qu es?
Matlab es un entorno de trabajo para el clculo cientfico. Programado
originalmente por el matemtico y programador, especialista en anlisis

numrico, Cleve Moler a finales de los aos 70, su finalidad original era
proporcionar una forma sencilla de acceder a las libreras LINPACK y
EISPACK donde estn implementadas, de una forma altamente eficiente, los
algoritmos clave del anlisis matricial. De hecho matlab es una abreviacin
de Matrix Laboratory.

Su primera implementacin se hizo en Fortran que era, y en buena medida


an sigue sindolo, el lenguaje estndar en la implementacin de mtodos
numricos.

Posteriormente se reimplement en C++, que es como se

encuentra en la actualidad.

Las aplicaciones de Matlab se fueron extendiendo a otras ramas del clculo


cientfico y de las ciencias aplicadas en general, dotndole de una gran
popularidad en ambientes cientficos, especialmente en Ingeniera. Dichas
extensiones se consiguieron en gran parte mediante la implementacin de
toolboxes, libreras escritas en el lenguaje de programacin propio de

Matlab y que ampliaban el rango de problemas que podan resolverse.

Cmo trabaja?
El lenguaje de programacin de Matlab es bastante ms flexible que los
lenguajes tradicionales. No es preciso la declaracin inicial de variables,
stas se pueden introducir en el momento que se necesiten, y por ejemplo,
vectores y matrices pueden declararse sin especificar sus dimensiones e
incluso cambiar sus tamaos sobre la marcha.
Por otro lado, una gran cantidad de mtodos numricos se encuentran

implementados de una forma muy eficiente y son accesibles como simples


comandos. An as, es conveniente tener una idea de qu mtodos se
estn utilizando para ser conscientes bajo qu condiciones van a funcionar,
cul es en cada caso el mtodo adecuado, y especialmente el significado de
los, posiblemente, numerosos argumentos opcionales que controlan el
funcionamiento del algoritmo.

A priori se pueden distinguir dos tipos de funciones en Matlab:


funciones compiladas (built in functions): estn optimizadas, son
programas ya compilados y con el cdigo no accesible para el usuario.
funciones no compiladas: estn escritas siguiendo el lenguaje de
programacin propio de Matlab.

Estos comandos se guardan en

ficheros *.m que es la extensin estndar de los ficheros de Matlab.

Entorno de trabajo
Command window: ventana donde podemos ejecutar los comandos.
El prompt de matlab es >>. El usuario escribe a continuacin.
Para ejecutar se pulsa la tecla enter.
Se pueden recuperar comandos anteriores navegando con las flechas y .

Cuando se trabaje en matlab tener en cuenta:

Se distinguen maysculas y minsculas.


Todos los comandos de matlab se escriben en minsculas y los
argumentos se envan entre parntesis separados por comas
El caracter % se utiliza para insertar comentarios. Todo lo que sigue, en
la misma lnea, es ignorado por matlab.

Si se escribe el smbolo ; al final de una instruccin, sta se ejecuta pero


el resultado no se muestra por pantalla.

Comandos de ayuda
help: muestra una ayuda por pantalla, en la ventana de comandos, con
la informacin esencial sobre un comando concreto.

doc: similar a help pero despliega la ayuda en una ventana auxiliar,


permitiendo as una navegacin, estilo web, muy cmoda.

Variables
Matlab no necesita la declaracin de variables como en un lenguaje
tradicional. En principio todas las variables son reales, y basta hacer uso de
ellas para que queden declaradas.
Ejemplo

>>a = 2;b = -3;


>>c = a*b

Operadores aritmticos
Operador

Descripcin

suma

resta

producto

divisin

potencia

Operadores lgicos

Operador

Descripcin

&&

"y" lgico

||

"o" lgico

negacin lgica

Operadores relacionales
Operador

Descripcin

==

igualdad

~=

desigualdad

>

mayor

<

menor

>=

mayor o igual

<=

menor o igual

Vectores y matrices
Un vector o una matriz se puede definir dando sus elementos entre
corchetes y separando filas mediante ;.
Ejemplo

>>a = [1,4,-2,0,3];

vector fila 1x5


= 1,4, 2,0,3

>>b = [6;-3;2];

vector columna 3x1


6
= 3
2

>>M = [2,1,3;0,8,-3;4,0,1];

matriz 3x3
2
= 0
4

1
3
8 3
0
1

Otra forma de definir un vector/matriz es insertando sus elementos en

cada posicin.
Ejemplo

>>Q(1,1) = 2;Q(1,2) = 5;Q(2,1) = 1;Q(2,2) = -3;

Esto define una matriz Q de 2x2


=

2
5
1 3

Acceso a elementos de matrices


Ejemplo

Sea la matriz

1
= 0
5

0 4
3 2
6 2

>>P = [1,0,4;0,3,2;5,6,2];
>>a = P(1,3);
asigna el elemento (1,3) de P a la variable a

Definicin de vectores con distribucin regular

a : b : c construye el vector de valores [a a+b a+2*b .... a+k*b]


donde a+k*b es el mayor nmero natural que cumple a+k*b c. La
instruccin a : c toma b = 1.

linspace(a,b,n) devuelve una particin uniforme de [a,b] en n puntos

Dimensiones de vectores y matrices


El comando size devuelve la dimensin de un vector/matriz en un
vector de tamao 21 con el nmero de filas y columnas.
El comando length devuelve la longitud (nmero de elementos) de un

vector.

Algunas propiedades vectoriales


Ejemplo

Sea el vector

= 1,3, 2

Norma euclideana

Ejemplo

2:

>>s = norm(v,2)

Norma infinita

Sean los vectores

1 = 1,3, 2 y 2 = 4,1,5

Producto interno :

= 1 2

>>s = norm(v,inf)

>>c = dot(v1,v2)

Matrices especiales

eye(n) es la matriz identidad de orden n.

Ejemplo

>>P = eye(3)

0 0
1 0
0 1

1
= 1
1

1 1
1 1
1 1

0
= 0
0

0 0
0 0
0 0

ones(m,n) es una matriz m x n de 1s.


Ejemplo
>>Q = ones(3,3)

1
= 0
0

zeros(m,n) es una matriz m x n de 0s.


Ejemplo
>>R = zeros(3,3)

Estructuras de control

Selectiva
Selectiva switch
Condicional if
Estructuras
de control
Repetitiva
Bucle for
Bucle while

Funciones
reserved word
output arguments
identifier
input arguments
function [out1,out2] = algorithm(in1,in2)

declaration line

%
% algorithm :
%
% INPUT
%
in1 :
%
in2 :
% OUTPUT
%
out1 :
%
out2 :
%

documentation

implementation

Grficos 1D
x = linspace(-4*pi,4*pi,100);

y = sin(x)./x;
figure
plot(x,y,b.-)
1

0.8

0.6

0.4

0.2

-0.2

-0.4
-15

-10

-5

10

15

Superposicin de grficos
x = linspace(-pi,pi,100);

y1 = sin(x);

y2 = cos(x);

figure
plot(x,y1,b.-,x,y2,r.-)
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-4

-3

-2

-1

x = linspace(-pi,pi,100);

y1 = sin(x); y2 = cos(x);

figure
hold on
plot(x,y1,b.-), plot(x,y2,r.-)
hold off
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-4

-3

-2

-1

x1 = linspace(-pi,pi,100);

y1 = sin(x1);

x2 = linspace(-pi,pi,200);

y2 = cos(x2);

figure
subplot(2,1,1),plot(x1,y1,b-)
subplot(2,1,2),plot(x2,y2,r-)
1
0.5
0
-0.5
-1
-4

-3

-2

-1

-3

-2

-1

1
0.5
0
-0.5
-1
-4

t1 = linspace(-pi,pi,100);

t2 = linspace(-pi,pi,200);
x = sin(x1);
v = cos(x2);
figure
subplot(2,1,1)

title(Posicion)
plot(t1,x,b-)
xlabel(t),ylabel(x),grid
subplot(2,1,2)
title(Velocidad)
plot(t2,v,r-)
xlabel(t),ylabel(v),grid

Posicion
1

0.5

-0.5

-1
-4

-3

-2

-1

0
t

Velocidad
1

0.5

-0.5

-1
-4

-3

-2

-1

0
t

You might also like