Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Clasec Prog1
Clasec Prog1
Programacin en Matlab
Introduccin a la Programacin en Matlab
9 de octubre de 2012
Programacin en Matlab
Indice
Scripts y Functions
Comandos de entrada y salida
2
Programacin en Matlab
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.
Programacin en Matlab
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.
Programacin en Matlab
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
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).
Programacin en Matlab
Programacin en Matlab
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.
Programacin en Matlab
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
Programacin en Matlab
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)}
Programacin en Matlab
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 .
Programacin en Matlab
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.
Programacin en Matlab
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.
Programacin en Matlab
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
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.
Programacin en Matlab
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
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 ...
Indice
Scripts y Functions
Comandos de entrada y salida
2
Programacin en Matlab
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
Programacin en Matlab
Operadores Logicos
Existen los siguientes operadores lgicos: X && Y operador lgico AND (Y) X || Y operador lgico OR (O) !X , X operador lgico NOT
Programacin en Matlab
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.
Programacin en Matlab
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
Programacin en Matlab
Uso del IF if (Condicin) SENTENCIA else ( % sino se da la condicion anterior, entonces ) SENTENCIA end
Programacin en Matlab
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
Programacin en Matlab
Uso del ElseIf if (Condicin) SENTENCIA elseif (Condicin) SENTENCIA else SENTENCIA end
Programacin en Matlab
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
Programacin en Matlab
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
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
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.
Programacin en Matlab
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
Programacin en Matlab
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
Programacin en Matlab
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
Programacin en Matlab
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
Programacin en Matlab
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.
Programacin en Matlab
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.
Programacin en Matlab
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
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')
Programacin en Matlab
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
Programacin en Matlab