Está en la página 1de 91

Lenguajes de Programacin 1

Captulo 2. MATLAB
Lenguajes de Programacin 2
1. OPERACIONES CON MATRICES Y
VECTORES

Lenguajes de Progra
macin
3
MATLAB es fundamentalmente un programa para clculo
matricial.
Para definir una matriz no hace falta establecer de antemano
su tamao (de eco! se puede definir un tama"o # cam$iarlo
posteriormente%. Las matrices se definen por filas& los
elementos de una misma fila estn separados por blancos o
comas! mientras 'ue las filas estn separadas por pulsaciones
intro o por caracteres punto y coma (&%.
Lenguajes de Progra
macin
(
>> A=[1 2 3; 4 5 6; 7 8 9]
La respuesta del programa es la siguiente)
A =
1 2 3
4 5 6
7 8 9
Lenguajes de Progra
macin
*
+na sencilla operacin con A es allar su matriz traspuesta.
,n MATLAB el apstrofo (-% es el s.m$olo de trasposicin
matricial. Para calcular A' (traspuesta de A% $asta teclear lo
siguiente (se a"ade a continuacin la respuesta del programa%)
>> A'
ans =
1 4 7
2 5 8
3 6 9
Lenguajes de Progra
macin
/
La 0aria$le ans puede ser utilizada como operando en la
siguiente e1presin 'ue se introduzca. Tam$i2n podr.a
a$erse asignado el resultado a otra matriz llamada B)
>> B=A'
B =
1 4 7
2 5 8
3 6 9
Lenguajes de Progra
macin
3
Aora #a estn definidas las matrices A # B! # es posi$le
seguir operando con ellas. Por ejemplo! se puede acer el
producto B*A (de$er resultar una matriz sim2trica%)
>> B*A
ans =
66 78 90
78 93 108
90 108 126
Lenguajes de Progra
macin
4
,n MATLAB se accede a los elementos de un 0ector
poniendo el .ndice entre par2ntesis (por ejemplo x(! x(i!%.
Los elementos de las matrices se acceden poniendo los dos
.ndices entre par2ntesis! separados por una coma (por ejemplo
A("#2! A(i#$!%. Las matrices se almacenan por columnas
(aun'ue se introduzcan por filas! como se a dico antes%! #
teniendo en cuenta esto puede accederse a cual'uier elemento
de una matriz con un slo su$.ndice. Por ejemplo! si A es una
matriz (313% se o$tiene el mismo 0alor escri$iendo A("#2! 'ue
escri$iendo A(%!.
Lenguajes de Progra
macin
5
6n0ertir una matriz es casi tan fcil como trasponerla. A
continuacin se 0a a definir una nue0a matriz A 7no singular7
en la forma)
>> A=[1 4 -3; 2 1 5; -2 5 3]
A =
1 4 -3
2 1 5
-2 5 3
Lenguajes de Progra
macin
18
Aora se 0a a calcular la in0ersa de A # el resultado se
asignar a B. Para ello $asta acer uso de la funcin inv( )
B=inv(A)
B =
0.1803 0.2213 -0.1885
0.1311 0.0246 0.0902
-0.0984 0.1066 0.0574
Lenguajes de Progra
macin
11
Para compro$ar 'ue este resultado es correcto $asta pre
multiplicar A por B&
>> B*A
ans =
1.0000 0.0000 0.0000
0.0000 1.0000 0.0000
0.0000 0.0000 1.0000
Lenguajes de Progra
macin
19
:e forma anloga a las matrices! es posi$le definir un vector
fila x en la forma siguiente (si los tres n;meros estn
separados por blancos o comas! el resultado ser un 0ector
fila%)
>> x=[10 20 30] % vector fila
x =
10 20 30
MATLAB considera comentarios todo lo 'ue 0a desde el
carcter tanto por ciento (%% asta el final de la l.nea.
Lenguajes de Progra
macin
13
<i los n;meros estn separados por intros o puntos & coma (&%
se o$tendr un vector columna)
>> y=[11; 12; 13] % vector columna
y =
11
12
13
Lenguajes de Progra
macin
1(
MATLAB tiene en cuenta la diferencia entre 0ectores fila #
0ectores columna. Por ejemplo! si se intenta sumar los
0ectores x e y se o$tendr el siguiente mensaje de error)
>> x+y
??? Error using ==> +
Matrix dimensions must agree.
Lenguajes de Progra
macin
1*
,stas dificultades desaparecen si se suma x con el 0ector
traspuesto de y)
>> x+y'
ans =
21 32 43
Lenguajes de Progra
macin
1/
Operaciones con matrices
+ adicin o suma
sustraccin o resta
* multiplicacin
' traspuesta
^ potenciacin
\ di0isin7iz'uierda
/ di0isin7dereca
.* producto elemento a elemento
./ y .\ di0isin elemento a elemento
.^ ele0ar a una potencia elemento a elemento
Lenguajes de Progra
macin
13
Los operadores anteriores se pueden aplicar tam$i2n de modo
mixto! es decir con un operando escalar # otro matricial. ,n
este caso la operacin con el escalar se aplica a cada uno de
los elementos de la matriz. =onsid2rese el siguiente ejemplo)
>> A=[1 2; 3 4]
A =
1 2
3 4
Lenguajes de Progra
macin
14
=onsid2rese el siguiente sistema de ecuaciones lineales!
Ax = b
en donde x # b son 0ectores columna! # A una matriz
cuadrada in0erti$le. La resolucin de este sistema de
ecuaciones se puede escri$ir en las 9 formas siguientes)
x > in0(A%?b
x > A\b
Lenguajes de Progra
macin
15
,n MATLAB e1iste tam$i2n la posi$ilidad de aplicar
elemento a elemento los operadores matriciales (?! @! A # B%.
Para ello $asta precederlos por un punto (.%. Por ejemplo)
>> [1 2 3 4]^2
??? Error using ==> ^
Matrix must be square.
>> [1 2 3 4].^2
ans =
1 4 9 16
Lenguajes de Progra
macin
98
> [1 2 3 4]*[1 -1 1 -1]
??? Error using ==> *
Inner matrix dimensions must agree.
>> [1 2 3 4].*[1 -1 1 -1]
ans =
1 -2 3 -4
Lenguajes de Progra
macin
91
Tipos de datos
MATLAB es un programa preparado para tra$ajar con
0ectores # matrices. =omo caso particular tam$i2n tra$aja
con 0aria$les escalares (matrices de dimensin 1%. MATLAB
tra$aja siempre en doble precisin! es decir guardando cada
dato en 4 $#tes! con unas 1* cifras decimales e1actas. Ca se
0er ms adelante 'ue tam$i2n puede tra$ajar con cadenas de
caracteres (strin's% #! desde la 0ersin *.8! tam$i2n con otros
tipos de datos) Matrices de ms dos dimensiones! matrices
dispersas! vectores y matrices de celdas! estructuras # clases
y objetos.
Lenguajes de Progra
macin
99
Otras formas de definir matrices
,1isten en MATLAB 0arias funciones orientadas a definir
con gran facilidad matrices de tipos particulares. Algunas de
estas funciones son las siguientes)
e#e((% forma la matriz unidad de tama"o ((1(%
zeros(3!*% forma una matriz de ceros de tama"o (31*%
zeros((% .dem de tama"o ((1(%
ones(3% forma una matriz de unos de tama"o (313%
ones(9!(% idem de tama"o (91(%
Lenguajes de Progra
macin
93
linspace(11!19!n% genera un 0ector con n 0alores igualmente
espaciados entre x1 # x
logspace(d1!d9!n% genera un 0ector con n 0alores espaciados
logar.tmicamente entre 18@d1 # 18@d9. <i

d es pi!! los puntos se generan entre
18@d1 # pi
rand(3% forma una matriz de n;meros aleatorios
entre 8 # 1! con distri$ucin uniforme! de
tama"o (313%
rand(9!*% idem de tama"o (91*%
Lenguajes de Progra
macin
9(
randn((% forma una matriz de n;meros aleatorios de
tama"o ((1(%! con distri$ucin normal! de 0alor
medio 8 # 0arianza
magic((% crea una matriz ((1(% con los n;meros 1! 9! ...
(?(! con la propiedad de 'ue todas las filas #
columnas suman lo mismo
il$(*% crea una matriz de Dil$ert de tama"o (*1*%. La
matriz de Dil$ert es una matriz cu#os elementos
(i!j% responden a la e1presin (1B(iEj71%%. ,sta es
una matriz especialmente dif.cil de manejar por
los grandes errores num2ricos a los 'ue conduce
Lenguajes de Progra
macin
9*
Formacin de una matriz a partir de otras
A continuacin se descri$en algunas de las funciones 'ue
crean una nue0a matriz a partir de otra o de otras!
comenzando por dos funciones au1iliares)
Gm!nH>size(A% de0uel0e el n;mero de filas # de columnas de
la matriz A. <i la matriz es cuadrada $asta
recoger el primer 0alor de retorno
n>lengt(1% calcula el n;mero de elementos de un 0ector
x
Lenguajes de Progra
macin
9/
zeros(size(A%% forma una matriz de ceros del mismo tama"o
'ue una matriz A pre0iamente creada
ones(size(A%% .dem con unos
A>diag(1% forma una matriz diagonal A cu#os elementos
diagonales son los elementos de un 0ector #a
e1istente x
1>diag(A% forma un 0ector x a partir de los elementos de
la diagonal de una matriz #a e1istente A
Lenguajes de Progra
macin
93
diag(diag(A%% crea una matriz diagonal a partir de la diagonal
de la matriz A
$lIdiag(A!B% crea una matriz diagonal de su$matrices a
partir de las matrices 'ue se le pasan como
argumentos
triu(A% forma una matriz triangular superior a partir de
una matriz A (no tiene por 'u2 ser cuadrada%.
tril(A% .dem con una matriz triangular inferior
Lenguajes de Progra
macin
94
JP,KA:JK :J< P+LTJ< ()%
:ef.nase un 0ector x con el siguiente comando)
>> x=1:10
x =
1 2 3 4 5 6 7 8 9 10
,n cierta forma se podr.a decir 'ue el operador ()% representa
un rango) en este caso! los n;meros enteros entre el 1 # el 18.
Lenguajes de Progra
macin
95
Por defecto el incremento es 1! pero este operador puede
tam$i2n utilizarse con otros 0alores enteros # reales! positi0os
o negati0os. ,n este caso el incremento 0a entre el 0alor
inferior # el superior.
>> x=1:2:10
x =
1 3 5 7 9
>> x=10:-1:1
x =
10 9 8 7 6 5 4 3 2 1
Lenguajes de Progra
macin
38
Operadores re"aciona"es
Operador #escripci$n
%
Menor 'ue
&
Ma#or 'ue
%=
Menor o igual 'ue
&=
Ma#or o igual 'ue
= =
6gual 'ue
' =
:istinto 'ue
Lenguajes de Progra
macin
31
Operadores "$(icos
Operador #escripci$n
M
and
N
or
O
negacin lgica
Lenguajes de Progra
macin
39
)*nciones matem+ticas e"ementa"es ,*e operan
de modo esca"ar
)*nci$n #escripci$n
sin(1%
<eno
cos(1%
=oseno
tan(1%
Tangente
asin(1%
Arco seno
acos(1%
Arco coseno
atan(1%
Arco Tangente
sin(1%
<eno iper$lico
Lenguajes de Progra
macin
33
)*nci$n #escripci$n
cos(1%
=oseno iper$lico
tan(1%
Tangente iper$lico
asin(1%
Arco seno ip.
acos(1%
Arco coseno ip.
atan(1%
Arco tangente ip.
log(1%
Logaritmo natural
log18(1%
Logaritmo decimal
Lenguajes de Progra
macin
3(
)*nci$n #escripci$n
e1p(1%
funcin e1ponencial
s'rt(1%
ra.z cuadrada
sign(1%
de0uel0e 71 si P8! 8 si >8 # 1 si Q8.
rem(1!#%
resto de la di0isin
mod(1!#%
similar a rem
round(1%
redondeo -acia e" entero m+s pr$ximo
fi1(1%
redondea -acia e" entero m+s pr$ximo a .
Lenguajes de Progra
macin
3*
)*nci$n #escripci$n
floor(1%
0alor entero ms pr1imo acia 7
ceil(1%
0alor entero ms pr1imo acia E
real(1% partes reales
imag(1% partes imaginarias
a$s(1% 0alores a$solutos
angle(1% ngulos de fase
Lenguajes de Progra
macin
3/
)*nciones ,*e act/an sobre 0ectores
)*nci$n #escripci$n
G1m!imH>ma1(1% m1imo elemento de un 0ector.
:e0uel0e el 0alor m1imo xm # la
posicin 'ue ocupa im
min(1% m.nimo elemento de un 0ector.
:e0uel0e el 0alor m.nimo # la
posicin 'ue ocupa
sum(1% suma de los elementos de un 0ector
Lenguajes de Progra
macin
33
)*nci$n #escripci$n
cumsum(1% de0uel0e el 0ector suma acumulati0a
de los elementos de un 0ector
mean(1% 0alor medio de los elementos de un
0ector
std(1% des0iacin t.pica
prod(1% producto de los elementos de un 0ector
Lenguajes de Progra
macin
34
)*nci$n #escripci$n
cumprod(1% de0uel0e el 0ector producto acumulati0o
de los elementos de un 0ector
G#!iH>sort(1% ordenacin de menor a ma#or de los
elementos de un 0ector x. :e0uel0e el
0ector ordenado y! # un 0ector i con las
posiciones iniciales en x de los elementos
en el 0ector ordenado y.
Lenguajes de Progra
macin
35
)*nciones ,*e act/an sobre matrices
)*nci$n #escripci$n
B > A- calcula la traspuesta (conjugada% de la
matriz A
B > A.- calcula la traspuesta (sin conjugar% de la
matriz A
0 > pol#(A% de0uel0e un 0ector 0 con los coeficientes
del polinomio caracter.stico de la matriz
cuadrada A
Lenguajes de Progra
macin
(8
)*nci$n #escripci$n
t > trace(A% de0uel0e la traza t (suma de los elementos de
la diagonal% de una matriz cuadrada A
Gm!nH > size(A% de0uel0e el n;mero de filas m # de columnas
n de una matriz rectangular A
n > size(A% de0uel0e el tama"o de una matriz cuadrada A
nf > size(A!1% de0uel0e el n;mero de filas de A
nc > size(A!9% de0uel0e el n;mero de columnas de A
Lenguajes de Programacin 41
2. PROGRAMACIN DE MATLAB
Lenguajes de Progra
macin
(9
123T2345A IF
,n su forma ms simple! la sentencia if se escri$e en la forma
siguiente
if condicion
sentencias
end
Lenguajes de Progra
macin
(3
,1iste tam$i2n la bifurcacin m(ltiple!
if condicion1
bloque1
elseif condicion2
bloque2
else
bloque4
end
Lenguajes de Progra
macin
((
<,LT,L=6A )*+TC,
switch switch_expresion
case case_expr1,
bloque1
case {case_expr2, case_expr3,
case_expr4,...}
bloque2
...
otherwise, % opcin por defecto
bloque3
end
Lenguajes de Progra
macin
(*
<,LT,L=6A -./
for i=1:n
sentencias
end
o $ien!
for i=vectorValores
sentencias
end
donde 0ector6a"ores es un 0ector con los distintos 0alores
'ue tomar la 0aria$le i.
Lenguajes de Progra
macin
(/
<,LT,L=6A *,+L0
while condicion
sentencias
end
donde condicion puede ser una e1presin 0ectorial o
matricial. Las sentencias se siguen ejecutando mientras a#a
elementos distintos de cero en condicion! es decir! mientras
a#a alg;n o algunos elementos true. ,l $ucle se termina
cuando todos los elementos de condicion son false
Lenguajes de Progra
macin
(3
<,LT,L=6A B/0A1
la sentencia brea ace 'ue se termine la ejecucin del $ucle
ms interno de los 'ue comprenden a dica sentencia.
Lenguajes de Progra
macin
(4
<,LT,L=6A C.2T+230
La sentencia continue ace 'ue se pase inmediatamente a la
siguiente iteracin del $ucle for o !"ile! saltando todas las
sentencias 'ue a# entre el continue # el fin del $ucle en la
iteracin actual.
Lenguajes de Progra
macin
(5
)02T02C+A) TKC...=AT=D...,L:
La construccin try###catc"###end permite gestionar los errores.
try
sentencias1
catch
sentencias2
end
,n el caso de 'ue durante la ejecucin del $lo'ue sentencias$
se produzca un error! el control de la ejecucin se
transfiere al $lo'ue sentencias%. <i la ejecucin transcurriera
normalmente! sentencias% no se ejecutar.a nunca.
Lenguajes de Progra
macin
*8
-32C+42 6LP+T
La funcin input permite imprimir un mensaje en la l.nea de
comandos de MATLAB # recuperar como 0alor de retorno un
0alor num2rico o el resultado de una e1presin tecleada por el
usuario.
>> n = input('Teclee el nmero de
ecuaciones')
Lenguajes de Progra
macin
*1
F+L=6RL 5+)6
La funcin disp permite imprimir en pantalla un mensaje de
te1to o el 0alor de una matriz! pero sin imprimir su nom$re.
>> disp('El programa ha terminado')
>> A=rand(4,4)
>> disp(A)
Lenguajes de Progra
macin
*9
F+L=6JL -6/+2T-
La cadena de control contiene los formatos de escritura. Por
ejemplo)
S 0ol > 9.8353534&
S fprintf(-,l 0olumen de la esfera es) T19.*f A n-!0ol%&
,l 0olumen de la esfera es) 9.83535
Lenguajes de Progra
macin
*3
,n el ejemplo e1puesto! ,l 0olumen de la esfera es la cadena
'ue se e1i$ir! T19.*f es el formato! # An es el operador de
cam$io de l.nea.
Lenguajes de Progra
macin
*(
:,F6L6=6RL :, F+L=6JL,<
La primera l&nea de un ficero llamado name#m 'ue define
una funcin tiene la forma)
function [lista de valores de retorno] =
name(argumentos)
donde name es el nom$re de la funcin. ,ntre corcetes #
separados por comas 0an los valores de retorno (siempre 'ue
a#a ms de uno%! # entre par2ntesis tam$i2n separados por
comas los argumentos.
Lenguajes de Progra
macin
**
,UAL+A=6RL :, F+L=6JL,< M,:6ALT,
K,F,K,L=6A<
Para e0aluar una referencia de funcin MATLAB
utiliza la funcin feval! 'ue se llama de la forma
siguiente)
[r1, r2, r3, ...] = feval(fh, arg1,
arg2, arg3, ...)
donde f" es una referencia de funcin # r$! r%! r'! ...
# arg$! arg%! arg'! ... son respecti0amente los
0alores de retorno # los argumentos de la funcin
cu#a referencia es f".
Lenguajes de Progra
macin
*/
1. =ree un arci0o M de funcin! funVes(1% 'ue calcule la
siguiente funcin)

# > 8.* e 7 1 sen(1%

,l argumento de$e aceptar tanto un escalar como un
0ector. Prue$e su funcin tecleando en MATLAB
funVes(3%
funVes(G1 9 3H%
0$ercicios
1B3 9
Lenguajes de Progra
macin
*3
9. 6mplementar un programa 'ue permita e0aluar e0aluar el
factorial de un n;mero entero positi0o. Por ejemplo)
<i n > *) < > *?(?3?9?1
<i n > 3) < > 3?9?1
3. 6mplementar programas 'ue permitan e0aluar las
siguientes
series)
a. La suma de los n primeros t2rminos de la serie)
< > 9 7 ( E / 7 4E ...
Lenguajes de Progra
macin
*4
$. La suma de los n primeros t2rminos de la funcin)
(. Kealizar un programa 'ue permita o$tener n n;meros
diferentes al azar! comprendidos entre otros dos a # $.
### + =
3 9
3 9
x x
x )
Lenguajes de Programacin 59
3. GRFICOS BIDIMENSIONALES
Lenguajes de Progra
macin
/8
)*nciones (r+ficas # e"ementa"es
)*nci$n #escripci$n
plot(% crea un grfico a partir de 0ectores #Bo
columnas de matrices! con escalas lineales
so$re am$os ejes
loglog(% .dem con escala logar.tmica en am$os ejes
semilog1(% .dem con escala lineal en el eje de ordenadas #
logar.tmica en el eje de a$scisas
semilog#(% .dem con escala lineal en el eje de a$scisas #
logar.tmica en el eje de ordenadas
Lenguajes de Progra
macin
/1
)*nci$n #escripci$n
title(-t.tulo-% a"ade un t.tulo al di$ujo
1la$el(-tal-% a"ade una eti'ueta al eje de a$scisas. =on
xlabel off desaparece
#la$el(-cual-% a"ade una eti'ueta al eje de ordenadas. =on
ylabel off desaparece
Lenguajes de Progra
macin
/9
)*nci$n #escripci$n
te1t(1!#!-te1to-% introduce -te1to- en el lugar especificado por
las coordenadas x e y. <i x e y son 0ectores!
el te1to se repite por cada par de elementos.
<i texto es tam$i2n un 0ector de cadenas de
te1to de la misma dimensin! cada elemento
se escri$e en las coordenadas
correspondientes
Lenguajes de Progra
macin
/3
)*nci$n #escripci$n
gte1t(-te1to-% introduce texto con a#uda del ratn) el cursor
cam$ia de forma # se espera un clic para
introducir el te1to en esa posicin
grid acti0a la inclusin de una cuadr.cula en el
di$ujo. =on grid off desaparece la cuadr.cula
Lenguajes de Progra
macin
/(
>> x=[-10:0.2:10]; y=sin(x).*exp(-x);
>> plot(x,y)
Lenguajes de Progra
macin
/*
4o"ores7 esti"os de "8nea y marcadores en "a
f*nci$n plot
Lenguajes de Progra
macin
//
>> x=[-10:0.2:10]; y=sin(x).*exp(-x);
>> plot(x,y,ko)
Lenguajes de Progra
macin
/3
A"adir l.neas a un grfico #a e1istente
<e utilizan para ello los comandos "old on # "old off. ,l
primero de ellos ace 'ue los grficos sucesi0os respeten los
'ue #a se an di$ujado en la figura (es posi$le 'ue a#a 'ue
modificar la escala de los ejes%& el comando "old off desace
el efecto de "old on.
Lenguajes de Progra
macin
/4
>> clear; clf;
>> x=[0:0.2:10]; y1=0.2*sin(x);
y2=0.2*cos(x);
>> y3=sin(x).*exp(-0.2*x);
>> plot(x,y1,k)
>> hold on
>> plot(x,y2,r)
>> plot(x,y3,b)
>> hold off
Lenguajes de Progra
macin
/5
Lenguajes de Progra
macin
38
=JMAL:J )3B6L.T
+na 0entana grfica se puede di0idir en m particiones
orizontales # n 0erticales! con o$jeto de representar
m;ltiples grficos en ella. =ada una de estas su$0entanas
tiene sus propios ejes! aun'ue otras propiedades son comunes
a toda la figura. La forma general de este comando es)
subplot(m,n,i)
donde m # n son el n;mero de su$di0isiones en filas #
columnas! e i es la su$di0isin 'ue se con0ierte en acti0a.
Lenguajes de Progra
macin
31
>> x=0:0.2:10;
>> y=sin(x); z=cos(x); w=exp(-x*.1).*y;
v=y.*z;
>> subplot(2,2,1), plot(x,y)
>> subplot(2,2,2), plot(x,z)
>> subplot(2,2,3), plot(x,w)
>> subplot(2,2,4), plot(x,v)
Lenguajes de Progra
macin
39
Lenguajes de Progra
macin
33
axis9:xmin7 xmax7 ymin7 ymax;<
mientras 'ue )
axis9'a*to'<
de0uel0e el escalado de los ejes al 0alor por defecto o
automtico.
(ontrol de los ejes
Lenguajes de Progra
macin
3(
axis9'i='< utiliza e$es de pantalla! con el origen en la es'uina superior izda.
# el eje = en direccin 0ertical descendente
axis9'xy'< utiliza e$es cartesianos normales! con el origen en la es'uina
inferior izda. # el eje y 0ertical ascendente
axis9'e,*a"'< el escalado es igual en am$os ejes
axis9's,*are'< la 0entana ser cuadrada
axis9'ima(e'< la 0entana tendr las proporciones de la imagen 'ue se
desea representar en ella (por ejemplo la de una imagen $itmap 'ue se
desee importar% # el escalado de los ejes ser coerente con dica imagen
axis9'norma"'< elimina las restricciones introducidas por -e'ual- # -s'uare-
axis9'off'< elimina las eti'uetas! los n;meros # los ejes
axis9'on'< restitu#e las eti'uetas! los n;meros # los ejes
Lenguajes de Progra
macin
3*
-32C+42 L6L,(%
La funcin line(% permite di$ujar una o ms l.neas
'ue unen los puntos cu#as coordenadas se pasan
como argumentos.
Para di$ujar un segmento de color 0erde entre dos
puntos! esta funcin se llamar.a de la siguiente
manera)
"ine9:xini7 xend;'7 :yini7 yend;'7 'co"or'7 '('<
Lenguajes de Progra
macin
3/
<e puede tam$i2n di$ujar dos l.neas a la 0ez
utilizando la forma)
"ine9:xini1 xini> xend1 xend;7 9:yini1 yini> yend1
yend;<>
<e pueden controlar las caracter.sticas de la l.nea por medio
de pares parmetroB0alor! como por ejemplo)
"ine9x7y7'4o"or'7'r'7'?ine@idt-'7A7'BarCer1iDe'717'?ie1ty"e'7E'7'BarCr
7'*'<
Lenguajes de Progra
macin
33
)reparaci*n de pel&culas o
+movies+
Para preparar pe'ue"as pel.culas o mo0ies se pueden
utilizar las funciones movie! moviein # getframe
B = mo0iein91F<>
x=:G*piH..1H*pi;'>
for ==1H1F
y=sin9x+=*pi/I<>
p"ot9x7y<>
B9H7=< = (etframe>
end
mo0ie9B71.71J<
Lenguajes de Progra
macin
34
1. Wrafi'ue las funciones en el dominio 'ue se indica

# > ! 8 X 1 X (
# > !8 X 1 X (
0$ercicios
sen(1%
1Ecos(1%
1
1E(179%
9
Lenguajes de Programacin 79
A. GRFICOS TRIDIMENSIONALES
Lenguajes de Progra
macin
48
#5BKLO #2 ?M32A1H )K345N3 )L,-'
La funcin plot' es anloga a su omloga $idimensional
plot. <u forma ms sencilla es la siguiente)
>> plot3(x,y,z)
'ue di$uja una l.nea 'ue une los puntos (1(1%! #(1%! z(1%%!
(1(9%! #(9%! z(9%%! etc. # la pro#ecta so$re un plano para
poderla representar en la pantalla.
Lenguajes de Progra
macin
41
>> clear; clf
>> fi=[0:pi/20:6*pi]; plot3(cos(fi),sin(fi),fi,k')
Lenguajes de Progra
macin
49
:6B+YJ :, MALLA:J<) F+L=6JL,<
M0),7/+5! M0), C )3/-
<ean x e y dos 0ectores 'ue contienen las coordenadas en una
# otra direccin de la ret.cula ('rid% so$re la 'ue se 0a a
di$ujar la funcin. :espu2s a# 'ue crear dos matrices O
(cu#as filas son copias de x% e P (cu#as columnas son copias
de y%. ,stas matrices se crean con la funcin mes"grid. ,stas
matrices representan respecti0amente las coordenadas x e & de
todos los puntos de la ret.cula. La matriz de 0alores Q se
calcula a partir de las matrices de coordenadas O e P.
Finalmente a# 'ue di$ujar esta matriz Q con la funcin
mes"#
Lenguajes de Progra
macin
43
QQ clear& clf&
QQ 1>71)8.1)1&#>71)8.1)1&
QQ GZ!CH>mesgrid(1!#%&
QQ [>e1p(7(Z.@9EC.@9%%&
QQ mes(Z!C![%
QQ 1la$el(-1-%&#la$el(-#-%&zla$el(-z-%
Lenguajes de Progra
macin
4(
Lenguajes de Progra
macin
4*
S surf(+!U!\%
Lenguajes de Progra
macin
4/
S alpa(8.(% TTransparencia
Lenguajes de Progra
macin
43
QQ mes(Z!C![!-,dge=olor-!-BlacI-%
Lenguajes de Progra
macin
44
:6B+YJ :, L]L,A< :, =JLTJKLJ)
F+L=6JL,< C.2T.3/
QQ GZ!CH>mesgrid(G71)8.1)1H!G71)8.1)1H%&
QQ [>e1p(7(Z.@9EC.@9%%
Lenguajes de Progra
macin
45
QQ contour(Z!C![!19% T19 cur0as de ni0el
Lenguajes de Progra
macin
58
QQcontour3(Z!C![!98%
Lenguajes de Progra
macin
51
surfc(Z!C![%

También podría gustarte