Programación Con Matlab
Programación Con Matlab
LABORATORIO DE MATLAB
Programación con Matlab
Actividad 1: Introducción
Matlab puede utilizarse como un lenguaje de programación que
incluye todos los elementos necesarios. Añade la gran ventaja de poder
incorporar a los programas propios del usuario todas las aplicaciones
que ya tiene implementadas, lo cual facilita y simplifica en muchos casos
la programación. También será de gran utilidad tener en cuenta la
estructura vectorial y matricial del programa.
Como ya hemos adelantado, los programas en Matlab suelen
escribirse en los ficheros .m (M-ficheros). Lo normal es que sea en
ficheros Scrips que resultan los más sencillos. A veces, no tienen
argumentos de entrada ni salida y están formados por un conjunto de
instrucciones que se ejecutan secuencialmente.
1
2. Entrada y salida de datos
Existe un comando para introducir información en un programa cuando
estamos en modo de ejecución. Este comando es: v=input(‘Cadena de
Caracteres’)
Ejemplos:
3. Operadores
Ya hemos estudiado operadores de tipo aritmético. En este momento
puede ser de utilidad conocer otros tipos de operadores:
Operadores relacionales:
< Menor
<= Menor o igual
>= Mayor o igual
> Mayor
== Igualdad
~= Desigualdad
find(A) Devuelve los índices de los elementos no nulos
2
find(A condición) Devuelve los índices de los elementos de A que
cumplen la condición
Operadores lógicos
~A Negación lógica
A&B Conjunción lógica (and)
A|B Disyunción lógica (or)
xor(A,B) or exclusivo, vale 1 si A o B, pero no ambos, valen 1
Ejemplo:
>> A=1:9;
P=(A>2)&(A<6) P= 0 0
1110 000
4. Sentencias de control
El uso de aplicaciones recursivas y condicionales es muy habitual en
matemáticas. Para ello si utilizan las bifurcaciones y los bucles.
Las bifurcaciones permiten realizar una u otra operación según se
cumplan o no ciertas condiciones. Los bucles repiten operaciones sobre datos
distintos.
Algunas de las sentencias de las que dispone Matlab para este tipo de
trabajos son las siguientes:
Sentencia for:
Permite ejecutar de forma repetitiva un comando o grupo de comandos.
La forma general de un bucle for es:
for variable=expresión
comandos
end
Por ejemplo:
for i=1:3;v(i)=1;end;v
3
1 1 1
>>
Así, un bucle for siempre empieza por la sentencia for y termina con la
end. En su interior incluye todo un conjunto de comandos que se separan por
comas. En algunos casos es bueno poner puntos y comas para evitar
repeticiones en las salidas. Por supuesto puede utilizarse en ficheros .m
Sentencia if:
Mediante esta estructura se pueden ejecutar secuencias de comandos si se
cumplen determinadas condiciones. Su sintaxis es:
If condición
comandos
end
end
comandos 2
4
que ejecuta comandos 1 si la condición 1 es cierta y comandos 2 si es
falsa.
N=input(‘introduce un número
natural’) If n=0,
disp(‘n es cero’)
elseif
rem(n,2)==0
disp(‘n es par’)
else
disp (‘n es impar’) end
Sentencia while:
Continue
Esta sentencia hace que se pase inmediatamente a la siguiente iteración
del bucle for o while, saltándose todas las sentencias que existan entre el
continue y el final del bucle en esa iteración.
Break
Hace que se termine la ejecución de un bucle for o while.
Nota: existen otras sentencias que pueden ser de interés y que pueden
consultarse en: matlab\lang - Programming language constructs.
Ejemplos:
1. %Valor absoluto de un número:
x=input('Digite algun valor numérico ')
if x<0
valor=-x;
else
valor=x;
end
y=['el valor absoluto es ',num2str(valor)];
disp(y)
6
2. Solución de una cuadrática:
%solución cuadratica
a=input('valor de a: ');
b=input('valor de b: ');
c=input('valor de c: ');
d=b^2-4*a*c;
if d>0
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
disp('valor positivo de la raiz')
elseif d==0
x1=-b/(2*a);
x2=-b/(2*a);
disp('la raiz vale 0')
else
x1=(-b+i*sqrt(-d))/(2*a);
x2=(-b-i*sqrt(-d))/(2*a);
disp('la raiz es negativa')
end
disp('valores de la ecuación de segundo grado:')
x1,x2
Sentencia switch:
Se utiliza para diferentes casos de una condición.
Ejemplo:
n = input('Ingrese un valor numérico: ');
switch n
case -1
disp('valor negativo’)
case 0
disp('Cero')
case 1
disp('positivo’)
otherwise
disp('otro valor')
end
ejemplo 2:
%operaciones
a=input('valor de a: ');
7
b=input('valor de b: ');
y=['1. sumar, 2. restar, 3.multiplicar, 4.dividir'];
disp(y)
n=input('que operación quiere? ');
switch n
case 1
x=a+b;
case 2
x=a-b;
case 3
x=a*b;
case 4
x=a/b;
otherwise
disp('No hay ninguna operación')
end
disp(x)
function s=suma(a,b)
s=a+b;
function r=resta(a,b)
r=a-b;
8
Actividad 2: Programar con Matlab
7. Realiza una tabla que incorpore el valor de los números enteros menores
que 20, sus inversos, sus cuadrados y sus raíces cuadradas. Hacerlo
primeramente con el comando while y luego con el comando for.