Vous êtes sur la page 1sur 40

Programacin en Matlab Elementos de Programacin Bibliograa

Programacin en Matlab
Introduccin a la Programacin en Matlab

Benites Alfaro,Omar Eduardo


Universidad Nacional Mayor de San Marcos

9 de octubre de 2012

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Lenguajes de Programacin y Ejecucin en Matlab Scripts y Functions

Indice

Programacin en Matlab Lenguajes de Programacin y Ejecucin en Matlab


Los archivos M (M-le

Scripts y Functions
Comandos de entrada y salida
2

Elementos de Programacin Operadores de Comparacin y Lgicos Sentencias de control de ujo


Estructuras Selectivas Estructuras Repetitivas

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Lenguajes de Programacin y Ejecucin en Matlab Scripts y Functions

Introduccin

Matlab aparte de brindar comandos ejecutables en su consola(command windows), otorga un entorno de programacin. En el cual, podemos crear una variedad de aplicaciones para distintos tipos de usos.

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Lenguajes de Programacin y Ejecucin en Matlab Scripts y Functions

Lenguajes de Programacin

Un lenguaje de programacin es un lenguaje que puede ser utilizado para controlar el comportamiento de una mquina, particularmente una computadora. Consiste en un conjunto de smbolos y reglas sintcticas y semnticas que denen su estructura y el signicado de sus elementos y expresiones. Un lenguaje de programacin permite a uno o ms programadores especicar de manera precisa: sobre qu datos una computadora debe operar, cmo deben ser estos almacenados, transmitidos y qu acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a travs de un lenguaje que intenta estar relativamente prximo al lenguaje humano o natural.

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Lenguajes de Programacin y Ejecucin en Matlab Scripts y Functions

Lenguajes de Programacin
Una caracterstica relevante de los lenguajes de programacin es precisamente que ms de un programador puedan tener un conjunto comn de instrucciones que puedan ser comprendidas entre ellos para realizar la construccin del programa de forma colaborativa. Los procesadores usados en las computadoras son capaces de entender y actuar segn lo indican programas escritos en un lenguaje jo llamado lenguaje de mquina. Todo programa escrito en otro lenguaje puede ser ejecutado de dos maneras: Mediante un programa que va adaptando las instrucciones conforme son encontradas. A este proceso se le llama interpretar y a los programas que lo hacen se los conoce como intrpretes. Traduciendo este programa al programa equivalente escrito en lenguaje de mquina. A ese proceso se le llama compilar y al traductor se le conoce como compilador.
Benites Alfaro,Omar Eduardo Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Lenguajes de Programacin y Ejecucin en Matlab Scripts y Functions

Etapas de Ejecucin de un Programa en Matlab

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Lenguajes de Programacin y Ejecucin en Matlab Scripts y Functions

Son simples archivos de texto que contienen sentencias MATLAB. Es a travs de ellos que se desarrolla la programacin codicacin. La extensin de stos archivos es .m. El nombre de un archivo M es inmediatamente asociado al Sistema MATLAB como un nuevo comando. La edicin/codicacin de un programa en MATLAB se efecta mediante la aplicacin MATLAB Editor/Debugger. Para iniciar el MATLAB Editor digitamos edit desde la lnea de comandos(command window).

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Lenguajes de Programacin y Ejecucin en Matlab Scripts y Functions

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Lenguajes de Programacin y Ejecucin en Matlab Scripts y Functions

Un archivo M puede ser de dos tipos: Script Contienen sentencias MATLAB. En su llamada (invocacin), no reciben ni retornan argumentos. Funcin Contienen sentencias MATLAB. En su llamada(invocacin), pueden recibir y retornan argumentos.

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Lenguajes de Programacin y Ejecucin en Matlab Scripts y Functions

Ejemplo de Script
1 2

4 5 6 7 8

%Ejemplo script simple %En el script, no recibe ni retorna argumentos de ... entrada y salida respectivamente. %Obviamente nos retorna un valor,pero este no es ... ingresado por el usuario. Todo ya lo hemos escrito %previamente x = pi/100:pi/100:10*pi; y = sin(x)./x; plot(x,y) grid

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Lenguajes de Programacin y Ejecucin en Matlab Scripts y Functions

Ejemplo de function
1 2

3 4 5 6

7 8

%Ejemplo de Function %Calcular el promedio aritmetico de tres nmeros. ... En el function los datos son ingresados por el ... usuario. Es decir hay argumentos de entrada y ... de salida function p=promedio(a,b) p=(a+b)/2; %p es el argumento de salida o variable de salida %(a,b) son los argumentos de entrada, en este ... caso las dos notas %promedio : es el nombre de la funcin % SINTAXIS: ... variable_salida=nombre_funcion(argumento ... 1,argumento 2,...,argumento n) {ejemplo, en la consola >> p=promedio(14,15)}

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Lenguajes de Programacin y Ejecucin en Matlab Scripts y Functions

Comando Input

El comando input solicita entradas al usuario. Sintxis variablerecepcion = input(mensaje) Visualiza el texto mensaje como prompt en la pantalla, esperando la entrada numrica desde el teclado, y retorna el valor ingresado en variablerecepcion. variablerecepcion = input(mensaje, s) Visualiza el texto mensaje como prompt en la pantalla, esperando la entrada textual desde el teclado, y retorna el valor ingresado en variablerecepcion .

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Lenguajes de Programacin y Ejecucin en Matlab Scripts y Functions

Comando Input

Observaciones Si se presiona la tecla ENTER sin haber ingresado algo, input retorna una matriz vaca Si se ingresa una entrada invlida, MATLAB mostrar el mensaje de error relevante y vuelve a mostrar el prompt solicitando una entrada vlida. Se puede especicar el carcter no imprimible en una nueva lnea \n.

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Lenguajes de Programacin y Ejecucin en Matlab Scripts y Functions

Comando Disp

Visualiza un texto o un arreglo. 1 Sintxis disp(X) Muestra un arreglo(numrico, texto, caracteres), sin imprimir el nombre del arreglo. Si X contiene una cadena de texto,la cadena ser mostrada. 2 Observaciones disp no visualiza arreglos vacos.

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Lenguajes de Programacin y Ejecucin en Matlab Scripts y Functions

Comando fprintf
1 Sintxis Imprime en pantalla las variables var1,var2,... bajo el control de la cadena de formato strFormato(formato posicion-objeto). 2 Cadena de Formato Permite controlar la notacin, alineacin, numero de dgitos signicativos, ancho del campo, y otros aspectos de un formato de salida. Puede tambin contener caracteres de escape que represente caracteres no imprimibles tales como nueva lnea \n o tabular \t. Los especicadores de conversin inician con el carcter seguido de los siguientes elementos: ag, ancho, precisin y carcter de conversin.
Benites Alfaro,Omar Eduardo Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Lenguajes de Programacin y Ejecucin en Matlab Scripts y Functions

Comando fprintf

3 EJEMPLO: ag: - (alineacin a la izquierda) ancho: 12 (numero de espacios totales incluido el punto decimal) precisin: 7 (numero de dgitos decimales despus del punto) carcter de conversin: f (tipo de dato asociado al valor por imprimir, f hace referencia a uso de decimales carcter de conversin: d (tipo asociado al valor por imprimir, cuando se trata de un numero entero.

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Lenguajes de Programacin y Ejecucin en Matlab Scripts y Functions

Ejemplos de cada comando


1 2 3 4 5 6 7 8 9 10 11

clc clear all % Ejemplo de Input variable=input('Ingrese el numero que desee: '); %Con \n damos un salto de linea fprintf('\n') %Ejemplo de Disp disp('Usando disp > Escriba el texto que desee ... usando disp') %Con \n damos un salto de linea fprintf('\n') %Ejemplo fprintf g=12.3435;
Benites Alfaro,Omar Eduardo Programacin en Matlab

12 13 14 15 16 17

Programacin en Matlab Elementos de Programacin Bibliograa 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

Operadores de Comparacin y Lgicos Sentencias de control de ujo

m=512; %Para imprimir decimales se usa %f fprintf('El valor de g es %12.8f',g) %Con \n damos un salto de linea fprintf('\n') %Para imprimir enteros se usa %d fprintf('El valor de g es %3d',m) %Con \n\n damos 2 saltos de linea fprintf('\n\n') %Con el \t tabulamos i.e damos salto de espacio fprintf('\t Inicio \t\t\t Fin \n') %Combinemos fprintf('\n\t El valor de g es %1.6f y de m %3d \n',g,m)
Benites Alfaro,Omar Eduardo Programacin en Matlab

es ...

Programacin en Matlab Elementos de Programacin Bibliograa

Operadores de Comparacin y Lgicos Sentencias de control de ujo

Indice

Programacin en Matlab Lenguajes de Programacin y Ejecucin en Matlab


Los archivos M (M-le

Scripts y Functions
Comandos de entrada y salida
2

Elementos de Programacin Operadores de Comparacin y Lgicos Sentencias de control de ujo


Estructuras Selectivas Estructuras Repetitivas

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Operadores de Comparacin y Lgicos Sentencias de control de ujo

Operadores Comparacin

Existen los siguientes operadores de comparacin: X < Y Verdadero si X es menor que Y X <= Y Verdadero si X es menor igual que Y X == Y Verdadero si X es igual a Y X >= Y Verdadero si X es mayor o igual que Y X >Y Verdadero si X es mayor que Y X != Y , X = Y, X <> Y, X es diferente a Y

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Operadores de Comparacin y Lgicos Sentencias de control de ujo

Operadores Logicos

Existen los siguientes operadores lgicos: X && Y operador lgico AND (Y) X || Y operador lgico OR (O) !X , X operador lgico NOT

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Operadores de Comparacin y Lgicos Sentencias de control de ujo

Sentencias de control de ujo

Matlab incorpora todas las palabras reservadas del lenguaje C, las cuales son if, else, while, for, end, etc. Estas crean dos tipos de estructuras: las selectivas y las repetitivas.

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Operadores de Comparacin y Lgicos Sentencias de control de ujo

Estructuras Selectivas

Hasta ahora todo lo desarrollado se realiza en forma secuencial, es decir desde un punto de inicio ejecutndose la sentencia siguiente unas tras otra hasta llegar al nal Para resolver problemas de una mayor complejidad se necesita la capacidad de controlar cuales son las sentencias que deben ejecutarse en funcin de una determinada condicin lgica.Entre ellas podemos identicar a If y al

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Operadores de Comparacin y Lgicos Sentencias de control de ujo

Uso del IF if (Condicin) SENTENCIA else ( % sino se da la condicion anterior, entonces ) SENTENCIA end

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Operadores de Comparacin y Lgicos Sentencias de control de ujo

Ejemplo de If
1 2 3 4 5 6 7 8 9 10

%USO DEL IF clc clear all a=input('ingrese el primer numero= '); b=input('ingrese el segundo numero= '); if a>b fprintf(' %1.5f es mas mayor que %1.5f ',a,b) else fprintf(' %1.5f es mas mayor que %1.5f',b,a) end

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Operadores de Comparacin y Lgicos Sentencias de control de ujo

Uso del ElseIf if (Condicin) SENTENCIA elseif (Condicin) SENTENCIA else SENTENCIA end

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Operadores de Comparacin y Lgicos Sentencias de control de ujo

Ejemplo de ElseIf
1 2 3 4 5 6 7 8 9 10 11 12

%USO DEL ELSEIF clc clear all a=input('ingrese el primer numero= '); b=input('ingrese el segundo numero= '); if a>b fprintf(' %1.5f es mas mayor que %1.5f ',a,b) elseif b>a fprintf(' %1.5f es mas mayor que %1.5f ',b,a) else fprintf('Los numeros son iguales') end

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Operadores de Comparacin y Lgicos Sentencias de control de ujo

Uso del Switch


Uso del Switch switch expresin case caso 1 SENTENCIA 1 case caso 2 SENTENCIA 2 case caso 3 SENTENCIA 3 case caso 4, caso 5, caso 6, ... SENTENCIA 4 otherwise SENTENCIA 5 end
Benites Alfaro,Omar Eduardo Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Operadores de Comparacin y Lgicos Sentencias de control de ujo

Ejemplo de Switch
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

clc clear all %Uso del switch disp('=============================') disp('Areas de Figuras Geometricas') disp('=============================') disp('Selecciones una Opcion:') disp(' 1 Rectangulo') disp(' 2 Triangulo') disp(' 3 Circulo') disp('=============================') tipo=input('Ingrese la opcion que desee: '); switch tipo, case 1 id = 'Rectangulo'; B = input('Base mayor: '); b= input('Base menor: '); Area = B*b;
Benites Alfaro,Omar Eduardo Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa 19 20 21 22 23 24 25 26 27 28 29 30 31

Operadores de Comparacin y Lgicos Sentencias de control de ujo

32

33 34 35

case 2 id = 'Triangulo'; b = input('Ingrese la base:'); h= input('Ingrese la altura:'); Area = (b*h)/2; case 3 %otros casos id = 'Circulo'; r= input('Ingrese el radio:'); Area = pi*r^2 ; otherwise %si no elegimos uno del menu id='error'; disp('Seleccin erronea') break %Este (break) hace que termine la ejecucion ... de nuestro programa %La pregunta es Que pasa si no colocamos la ... palabra break? end %Print calculated area fprintf('\nEl area del rectangulo es ... %10.6f.\n\n',id,Area)
Benites Alfaro,Omar Eduardo Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Operadores de Comparacin y Lgicos Sentencias de control de ujo

Estructuras Repetitivas

Tambien conocidos como bucles,las estructuras de control iterativas o repetitivas se utilizan cuando se desea que una sentencia o bloque de sentencias se repita un numero determinado de veces o hasta que una condicin de terminacin se cumpla. Estas son dos: FOR y WHILE.

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Operadores de Comparacin y Lgicos Sentencias de control de ujo

Repite un conjunto de sentencias un numero predeterminado de veces. Su forma general es la siguiente: Uso del For for(var = EXPRESION) % var sera un conjunto de valor, un vector por ejemplo SENTENCIA end

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Operadores de Comparacin y Lgicos Sentencias de control de ujo

Ejemplo de For
1 2 3 4 5 6 7 8 9 10

%USO DEL FOR %Desplegar todos los numeros del 1 al 10 clear all clc %Inicialiazamos el valor de k en cero fprintf('Los numeros del 1 al 10 son \n ') for i=0:9 i=i+1; %el valor de i varia por cada iteracion fprintf(' %1d \n',i) end

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Operadores de Comparacin y Lgicos Sentencias de control de ujo

Uso del While

Repite un conjunto de sentencias un numero predeterminado de veces. Su forma general es la siguiente: Uso del While while(CONDICION) % Mientras la condicion se cumpla, el while hara iteraciones SENTENCIA end

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Operadores de Comparacin y Lgicos Sentencias de control de ujo

Ejemplo de While
1 2 3 4 5 6 7 8 9 10

%USO DEL WHILE %Muestra los numeros del 1 al 10 usando 'while' clc clear all i = 0; %Inicializamos en cero while i < 10 %'mientras el valor i sea menor que 10' i=i+1; fprintf(' %1d \n',i); end %cuando i=10 el bucle se detiene y nos muestra ... los valores de i

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Operadores de Comparacin y Lgicos Sentencias de control de ujo

Sentencias Break and Continue

1 Sentencia BREAK Detiene completamente la ejecucin de un bucle for o while. Si hay bucles anidados, se detiene la ejecucin del ms interno. 2 Sentencia CONTINUE Detiene la ejecucin de la iteracin actual en un bucle for o while y pasa el control a la siguiente iteracin.

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Operadores de Comparacin y Lgicos Sentencias de control de ujo

Contadores y Acumuladores
Dos conceptos importantes en la programacion son el contador y el acumulador. 1 Contador: Es una variable que acumula las veces que se pasa por ella. Se suele denominar contador cuando el incremento de la variable es de 1 en 1, pero no tiene por qu ser as obligatoriamente.La sintaxis genrica sera: variable = variable + 1 2 Acumulador: Es una variable cuyo valor se incrementa o decrementa en un valor que no tiene por qu ser jo (en cada iteracin de un bucle). Un acumulador suele utilizarse para acumular resultados producidos en las iteraciones de un bucle.

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

Operadores de Comparacin y Lgicos Sentencias de control de ujo

Ejemplo de Contadores y Acumuladores


1 2 3 4 5 6 7

8 9 10 11 12 13 14 15

16

%CONTADORES Y ACUMULADORES %Programa de promedio de notas clc clear all disp('PROMEDIO DE NOTAS DE TEORIA') disp('===================') nota=input('Ingrese la nota o #ro diferente para ... acabar '); cont=0; %cont va ser el contador las notas ingresadas acum=0; %'acum' va acumular las notas ingresadas while (nota0 && nota20) %Se incrementa el contador en 1 cont=cont+1; %Se incrementa el acumulador acum=acum+nota; nota=input('Ingrese una nota un #ro ... diferente para acabar: '); end
Benites Alfaro,Omar Eduardo Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa 17 18 19

20

21 22

if (cont=0) Promedio=acum/cont; %promedio=la suma de las ... notas / el numero de notas fprintf('El promedio de notas es: %0.5f ... \n',Promedio) end disp('FIN DEL PROGRAMA')

Benites Alfaro,Omar Eduardo

Programacin en Matlab

Programacin en Matlab Elementos de Programacin Bibliograa

BIBLIOGRAFIA

Como Programar En C++ de Deitel. Programming in Matlab Web-Site: http://http: //www.math.siu.edu/matlab/tutorial2.pdf Matlab Programming-Gerald W. Recktenwald Department of Mechanical Engineering-Portland State University http://web.cecs.pdx.edu/~gerry/nmm/course/slides/ ch03Slides.pdf

Benites Alfaro,Omar Eduardo

Programacin en Matlab