Escolar Documentos
Profissional Documentos
Cultura Documentos
Funcin input
1
12/03/2013
Funcin disp
2
12/03/2013
>>edit
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Este es un programa no muy util,
%que calcula el factorial de 6
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
n=6;
fac=1;
for i=2:n
fac=fac*i;
end
Fac
3
12/03/2013
>> fac
fac =
720
Otra forma:
factorial(6)
ans =
720
4
12/03/2013
Los bucles permiten repetir las mismas o anlogas operaciones sobre datos distintos.
Mientras que en C/C++/Java el "cuerpo" de estas sentencias se determinaba mediante llaves
{...}, en MATLAB se utiliza la palabra end con anloga finalidad. Existen tambin algunas otras
diferencias de sintaxis.
La Figura muestra dos posibles formas de bucle, con el control situado al principio o al
final del mismo. Si el control est situado al comienzo del bucle es posible que las
sentencias no se ejecuten ninguna vez, por no haberse cumplido la condicin cuando se
llega al bucle. Sin embargo, si la condicin est al final del bucle las sentencias se
ejecutarn por lo menos una vez, aunque la condicin no se cumpla. Muchos lenguajes de
programacin disponen de bucles con control al principio ( for y while en C/C++/Java) y al
final (do while en C/C++/Java). En MATLAB no hay bucles con control al final del
bucle, es decir, no existe la construccin anloga a do ... while.
Existe tambin la bifurcacin mltiple, en la que pueden concatenarse tantas condiciones como se desee, y que
tiene la forma:
if condicion1
bloque1
elseif condicion2
bloque2
elseif condicion3
bloque3
else %opcin por defecto, cuando no se cumplan las condiciones 1,2,3
bloque4
end
Donde la opcin por defecto else puede ser omitida: si no est presente no se hace nada en caso de que no se
cumpla ninguna de las condiciones que se han revisado.
5
12/03/2013
Operadores Lgicos:
6
12/03/2013
for i=1:n
sentencias
end
For anidados:
for i=1:n
for j=1:m
sentencias
end
end
7
12/03/2013
for i=n:-0.2:1
sentencias
end
Ejemplo A=zeros(10);
for i=1:10
x=0; for j=1:10
for i=1:4
for j=1:4 A(i,j)=rem( i+j, 10);
x=x+1; end;
A(i,j)= x; end
end
end
>> A
>A A=
2 3 4 5 6 7 8 9 0 1
A= 3 4 5 6 7 8 9 0 1 2
4 5 6 7 8 9 0 1 2 3
5 6 7 8 9 0 1 2 3 4
1 2 3 4 6 7 8 9 0 1 2 3 4 5
5 6 7 8 7 8 9 0 1 2 3 4 5 6
8 9 0 1 2 3 4 5 6 7
9 10 11 12 9 0 1 2 3 4 5 6 7 8
13 14 15 16 0 1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 0
8
12/03/2013
La variable j es la que vara ms rpidamente (por cada valor de i, j toma todos sus posibles
valores):
for i=1:m
for j=1:n
sentencias
end
end
Una ltima forma de inters del bucle for es la siguiente (A es una matriz):
for r=A
sentencias
end
En la que la variable r es un vector que va tomando en cada iteracin el valor de una de las
columnas de A.
while condicion
sentencias
end
9
12/03/2013
10
12/03/2013
switch expresion
case case_expr1
comandos
case case_expr2
comandos
...
otherwise % opcin por defecto
comandos
end
A = 1; B = 2;
switch A + B
case 3
disp('el resultado es 3')
case 5
disp('el resultado es 5 ')
otherwise
disp('el resultado ni es tres ni cinco')
end
11
12/03/2013
Grafica vectores
plot(X,Y)
plot(X)
plot(X, Y, simbolo)
12
12/03/2013
x=[1:0.1:10];y=sin(x);plot(x,y);
13
12/03/2013
Sintaxis:
subplot(abc)
a es filas, b columnas, numero de figura.
14
12/03/2013
Ejemplo:
subplot(221)
x=[0:0.1:10];y=sin(x);
plot(x,y);grid on;xlabel('eje x'); ylabel('eje y');
title('fig 1'); legend('sen x');
subplot(222)
x=[0:0.1:10];y=cos(x);
plot(x,y);grid on;xlabel('eje x'); ylabel('eje y');
title('fig 2'); legend('cos x');
subplot(223)
x=[0:0.1:10];y=10*sin(x);
plot(x,y);grid on;xlabel('eje x'); ylabel('eje y');
title('fig 3'); legend('10sen x');
subplot(224)
x=[0:0.1:10];y=10*cos(x);
plot(x,y);grid on;xlabel('eje x'); ylabel('eje y');
title('fig 4'); legend('10*cos x');
15
12/03/2013
Sintaxis:
16
12/03/2013
Ejemplo:
Resolver el sistema de ecuaciones:
3*x+2*y-z=10
-x+3*y+2*z=5
x-y-z=-1
[x, y ,z]=solve('3*x+2*y-z=10','-
x+3*y+2*z=5','x-y-z=-1')
17
12/03/2013
Ejemplo 1:
function [a b c]=funcion1(X, Y, Z)
a= X +Y + Z;
b= X*Y*Z;
c= [a b X Y Z];
18
12/03/2013
Ejemplo 2:
function [] funcion2()
D=1;
pause(1);
Diplay(estas en la funcin funcion2);
19