Professional Documents
Culture Documents
>>help
>>helpwin
>>clc
>>home
>>quit
>>exit
1
Operadores aritmticos:
+ suma
- resta
* producto
/ divisin por la derecha
\ divisin por la izquierda
^ potenciacin
2
La fraccin , puede ser introducida en MATLAB como 2/3 o bien como 3\2.
3
Nombres de variables: Deben empezar con una letra, seguido de una serie de caracteres
alfanumricos hasta un mximo de 31. Se distingue entre maysculas y minsculas.
Constantes internas
pi=3.14159
i o j= 1
Inf o inf=
Tipos de formato
2
MATRICES
Introduccin de matrices
* Se escriben entre corchetes todos los elementos de la matriz.
* Se utilizar ; o return para indicar el final de una fila.
* Los elementos de una misma fila se separarn con blancos o comas.
Multiplicacin de matrices:
>>C = A * B;
Funciones de matrices
Matriz inversa:
>>inv(A);
Nmero de condicin:
>>cond(A);
3
Traza de una matriz:
>>trace(A);
Polinomio caracterstico:
>>poly(A);
Factorizacin de Cholesky:
>>R = chol(A);
>>[R,p] = chol(A);
4
Manipulacin de elementos de matrices
>>x(3)=20
x=
-1.3000 1.7321 20 0 4.0000
5
1 0 0 0
0 1 0 0
diag permite crear matrices diagonales o extraer diagonales de una matriz. As:
diag(v,k) con v vector y k entero crea una matriz con los elementos de v en la k-
sima diagonal.
diag(X,k) con X matriz crea un vector columna con los elementos de la k-sima
diagonal de X.
Mnimo y mximo:
>>v = [11 23 73 25 49 92 28 23];
>>min(v)
ans=
11
>>max(v)
ans=
92
>>max(A);
dara como resultado un vector fila que contiene el mximo elemento de cada columna.
Para obtener el mximo elemento de toda la matriz A, ser necesario escribir
>>max(max(A));
6
Ordenacin de elementos: sort (orden creciente).
Eliminacin de variables
>>clear A x
>>clear all
Compatibilidad de dimensiones
Matrices dispersas
S = sparse(i,j,s,m,n,nzmax)
Ejemplo
>>n=5;
>>D = sparse(1:n,1:n,-2*ones(1,n),n,n,n)
D=
(1,1) -2
(2,2) -2
(3,3) -2
(4,4) -2
(5,5) -2
>>E = sparse(2:n,1:n-1,ones(1,n-1),n,n,n-1);
>>S = E + D + E
S=
(1,1) -2
(2,1) 1
(1,2) 1
(2,2) -2
(3,2) 1
(2,3) 1
(3,3) -2
(4,3) 1
(3,4) 1
(4,4) -2
(5,4) 1
(4,5) 1
(5,5) -2
>>D = sparse(1:n,1:n,-2,n,n,n);
>>E = sparse(2:n,1:n-1,1,n,n,n-1);
spdiags permite crear matrices dispersas con estructura de banda o extraer diagonales de
matrices dispersas
7
A=spdiags(B,d,m,n)
Ejemplo
>>B=[1 -2 5;1 -2 1;1 -2 1;1 -2 1;5 -2 1];
>>A=spdiags(B,-1:1,5,5)
A=
(1,1) -2
(2,1) 1
(1,2) 1
(2,2) -2
(3,2) 1
(2,3) 1
(3,3) -2
(4,3) 1
(3,4) 1
(4,4) -2
(5,4) 1
(4,5) 1
(5,5) -2
B=spdiags(A,d)
Ejemplo
>>B=spdiags(A,-1:1)
B=
1 -2 0
1 -2 1
1 -2 1
1 -2 1
0 -2 1
FUNCIONES ELEMENTALES
Funciones trigonomtricas
sin seno
cos coseno
tan tangente
asin arcoseno
acos arcocoseno
atan arcotangente
sinh seno hiperblico
cosh coseno hiperblico
8
tanh tangente hiperblica
asinh arcoseno hiperblico
acosh arcocoseno hiperblico
atanh arcotangente hiperblica
Si se aade una d al final del nombre de todas estas funciones trigonomtricas (por
ejemplo, sind, tand, atanhd,...) operan con argumentos en grados.
Funciones elementales
abs valor absoluto o mdulo de un nmero complejo
realsqrt raz cuadrada de un nmero real positivo
sqrt raz cuadrada
exp exponencial de base e
log logaritmo neperiano. Proporciona resultados
complejos cuando el argumento es negativo
log10 logaritmo en base 10
log2 logaritmo en base 2
reallog logaritmo neperiano
pow2 potencias de base 2
realpow(X,Y) calcula X^Y elemento a elemento
real parte real de un nmero complejo
imag parte imaginaria de un nmero complejo
conj conjugado de un nmero complejo
angle argumento en radianes de un nmero complejo entre
- y
round redondeo al entero ms prximo
fix redondeo hacia cero
floor redondeo hacia -
ceil redondeo hacia
rem resto de una divisin
sign funcin signo
Sentencia Utilizacin
for para establecer un ciclo
while en ciclos apareciendo condiciones
if para establecer condiciones
elseif, else en conjunto con el comando if
switch tambin para establecer condiciones
case, otherwise en conjunto con el comando switch
end para finalizar ciclos
continue para pasar a la siguiente iteracin antes de
tiempo en los ciclos for y while
break interrumpe la ejecucin de un ciclo
9
Ciclo for
>>for contador=valores
sentencias
end
Ejemplo: Se van a calcular las hipotenusas de tringulos rectngulos cuyos catetos son
nmeros naturales comprendidos entre uno y cinco.
>>p=zeros(5,5);
>>for k=1:5
for j=1:5
p(k,j)=k^2+j^2;
end
end
Ciclos while
>>while condicin
sentencias
end
Operadores relacionales
== igualdad
<= menor o igual que
>= mayor o igual que
< menor que
> mayor que
= distinto a
10
1 0 1
Operadores lgicos
>> A = [0 1 1 0 1];
>> B = [1 1 0 0 1];
>> A&B
ans =
0 1 0 0 1
>> A|B
ans =
1 1 1 0 1
>> ~A
ans =
1 0 0 1 0
Ejemplo
>>n=1000;
>>var=[];
>>while n>0
n=n/2-1;
var=[var,n];
end
>>var
var=
Columns 1 through 7
499.0000 248.5000 123.2500 50.6250 29.3125 13.6562 5.8281
Columns 8 through 9
1.9141 -0.0430
Sentencia continue
Sentencia break
11
if condicin 1
sentencias
elseif condicin 2
sentencias
elseif condicin 3
sentencias
else
sentencias
end
switch expresin
case expresin1
sentencias1
case expresin2
sentencias2
otherwise
sentencias
end
Ficheros Script
12
Bloques de comentarios:
%{ lnea en blanco
lneas de comentario
%}
Todas las variables definidas quedan en memoria.
Cancelar ejecucin: Ctrl-C.
Impresin de los comandos que van siendo ejecutados: echo (on y off)
Ejecucin de parte seleccionada en el editor: F9
Ejemplo
tic
t=0:0.001:10;
y=sin(t);
toc
tic
i=0;
for t1=0:0.001:10
i=i+1;
z(i)=sin(t1);
end
toc
Funciones
Los argumentos de entrada se especificarn entre parntesis y separados por comas. Los
argumentos de salida se especificarn entre corchetes y separados por comas.
Las variables definidas dentro de la funcin slo estn en memoria mientras dura la
ejecucin de la misma.
Las nicas variables que permanecen en memoria son los argumentos de entrada y
salida.
La sentencia global var1 var2 permite compartir variables entre funciones.
Ejemplo
function y=media(x)
% Esta funcin calcula la media de los valores contenidos en el vector x
% Argumento de entrada: x
% Argumento de salida : y (contendr la media)
n=length(x);
y=sum(x)/n; % La funcin sum calcula la suma de todas las componentes de x.
13
Este fichero deber guardarse con el nombre media.m.
Para ejecutar esta funcin, se escribir media(nombre del vector) o bien
variable= media(nombre del vector).
Cancelar ejecucin: Ctrl-C.
Las variables nargin y nargout contienen el nmero de argumentos de entrada y salida,
respectivamente de una funcin.
help nombredefuncin devuelve todas las lneas de comentario que han sido
introducidas despus de la lnea de definicin y hasta la primera lnea en blanco o la
primera sentencia ejecutable (esto no es aplicable a los bloques de comentarios).
Para imprimir las sentencias de un archivo de tipo funcin a medida que sta es
ejecutada, debe escribirse en la ventana de comandos
echo nombrefuncion on
echo nombrefuncion off
Tambin se puede evaluar la funcin anterior mediante y=feval(media,x)
return devuelve el control al fichero de llamada o a la ventana principal.
Subfunciones
Ejemplo
n = length(x);
y = media1(x,n);
Identificadores de funciones
Ejemplos
>>iden1=@sin;
14
>>x=0:0.01:pi;
>>y=iden1(x);
>>plot(x,y)
>>fzero(iden1,7)
>>y=feval(iden1,8);
Funciones annimas
fhandle(arg1,arg2,,argn)
Ejemplos
>>raizxy(5,7)
ans =
8.6023
>>exponen=@(x) exp(-x.^2);
>>quad(exponen,0,1)
ans=
0.7468
GRFICOS
(x1,y1,tipo de lnea y/o tipo de punto y/o color 1, x2,y2,tipo de lnea y/o tipo de
punto y/o color 2,)
15
Tipo de lnea Smbolo Tipo de punto Smbolo Color Smbolo
continua - punto . amarillo y
discontinua -- signo ms + rojo r
a puntos : estrella * verde g
raya punto -. crculo o azul b
aspa x blanco w
cuadrado s negro k
rombo d magenta m
etc. cian c
Ejemplo
Caso 1
Se crean dos funciones fun1.m y fun2.m, que contienen a f y g respectivamente:
function y=fun1(x)
y=exp(-0.5*x).*sin(5*x);
function y=fun2(x)
16
y=exp(-0.5*x).*cos(5*x);
Caso 2
x=-4:0.05:4; % se crea la discretizacin del intervalo [-4,4]
y=exp(-0.5*x).*sin(5*x) % se evala f(x) en las componentes del vector x
z=exp(-0.5*x).*cos(5*x) % se evala g(x) en las componentes del vector x
plot(x,y,'--r',x,z,+b);
legend('exp(-0.5x)*sen(5x)','exp(-0.5x)*cos(5x)')
title('Ejemplo de grficos');
xlabel('eje OX');
ylabel('eje OY');
grid;
17
mesh(x,y,Z) surf(x,y,Z) mesh(Z) surf(Z)
En los dos ltimos casos MATLAB considera x=1:n e y=1:m, siendo [m,n]=size(Z).
Mapas de colores: Son matrices de 3 columnas con valores entre 0 y 1 que representan
la intensidad de los tres colores fundamentales RGB. Existen mapas predefinidos (ver
graph3d) de 64 filas o colores. Con la sentencia colormap(nombre mapa) se cambian
los colores de la figura. La sentencia colorbar visualiza la escala de valores.
view: establece el punto de vista.
rotate3d: gira mediante ratn cualquier grfico en 3D.
Desde el men File (opcin Save As) se puede guardar la figura como un fichero con
extensin .fig que se podr abrir desde la opcin Open del men File de la ventana
principal de MATLAB.
MISCELNEA
Almacenamiento de variables
save nombre var1 var2iden1 iden2 guarda en el fichero de datos nombre.mat las
variables var1, var2 etc. y los identificadores de funciones iden1, iden2 etc..
load nombre var1 var2 iden1 iden2 recupera las variables e identificadores
almacenados en nombre.mat.
diary nombre graba todo lo que se est haciendo en una sesin de trabajo en el fichero
nombre.
diary off desactiva la situacin anterior.
diary on permite volver a grabar en el fichero nombre.
18
Ejemplo
>>temp=25.5;
>>fprintf(\tLa temperatura es \n%4.2f grados\n,temp)
La temperatura es
25.50 grados
>>
Introduccin de grandes cantidades de datos en ficheros script.
1. Variables de texto
>>s=Hola
s=
Hola
>>size(s)
ans=
1 4
>>s=[s, a todos]
s=
Hola a todos
Ejemplo
>> figure
>> T=20;
>>title([ La Temperatura es num2str(T),grados]);
Ejemplos
>>f=1/(i+j-1);
>>for i=1:20
for j=1:20
a(i,j)=eval(f);
end
end
>> g='x.^2';
>> x=0:0.02:1;
>> eval(g)
>>x='0:0.1:1';
>>eval(x)
19
2. Matrices tridimensionales
>>sin(A)
ans(:,:,1) =
0.8415 0.9093 0.1411
-0.7568 -0.9589 -0.2794
ans(:,:,2) =
0.6570 0.9894 0.4121
-0.5440 -1.0000 -0.5366
3. Matrices de celdas
Ejemplo
>> b{2,1}
ans =
4 3
20
num2cell transforma una matriz numrica en matriz celda.
Consideraciones finales
Directorios de inters
varargin: matriz de celdas que contiene todos los argumentos de entrada opcionales de
la funcin.
varargin debe ser el ltimo argumento de entrada de la funcin y debe escribirse en
minsculas.
En la llamada a la funcin, varargin recoger todos los argumentos de entrada que se
introduzcan a partir de ese punto.
Ejemplo
function midibujo(x,varargin)
plot(x,varargin{:})
>> x=0:0.01:pi;
>> midibujo(x,sin(x),'r:')
varargout: matriz de celdas que contiene todos los argumentos de salida opcionales de
la funcin.
varargout debe ser el ltimo argumento de salida de la funcin y debe escribirse en
minsculas.
En la llamada a la funcin, varargout recoger todos los argumentos de salida a los que
se haya dado valores dentro de la funcin.
Ejemplo
function varargout=ejemplo(varargin)
21
if nargin==1
entero=round(varargin{1});
varargout{1}=entero;
elseif nargin==2
entero=round(varargin{1});
resto=rem(varargin{1},varargin{2});
varargout{1}=entero;
varargout{2}=resto;
end
>> x=9.8765;y=3.4567;
>> a=ejemplo(x)
a=
10
>> [a,b]=ejemplo(x,y)
a=
10
b=
2.9631
Ejemplo
function identfun=misfunciones
identfun={@funcion1 @funcion2 @funcion3 @funcion4};
function f=funcion1(x)
f=exp(-0.5*x).*sin(5*x);
function f=funcion2(x)
f=exp(-0.5*x).*cos(5*x);
function f=funcion3(x);
f=exp(-0.5*x).*sin(3*x);
function f=funcion4(x)
f=exp(-0.5*x).*cos(3*x);
x=0:0.01:pi;
22
y=[]; % Se inicializan las matrices a utilizar en el ciclo for
f={};
for i=1:4
y(i,:)=feval(identfun{i},x); % Se evala la funcin a representar
f{i}=func2str(identfun{i});
end
plot(x,y(1,:),x,y(2,:),x,y(3,:),x,y(4,:))
legend(f{1},f{2},f{3},f{4});
23