Matlab

Solo disponible en BuenasTareas
  • Páginas : 7 (1623 palabras )
  • Descarga(s) : 0
  • Publicado : 12 de diciembre de 2011
Leer documento completo
Vista previa del texto
Capítulo 6: Programación de MATLAB

página 63

6. PROGRAMACIÓN DE MATLAB
Como ya se ha dicho varias veces –incluso con algún ejemplo– MATLAB es una aplicación que se puede programar muy fácilmente. De todas formas, como lenguaje de programación pronto verá que no tiene tantas posibilidades como otros lenguajes (ni tan complicadas...). Se comenzará viendo las bifurcaciones y bucles, y lalectura y escritura interactiva de variables, que son los elementos básicos de cualquier programa de una cierta complejidad.

6.1. Bifurcaciones y bucles
MATLAB posee un lenguaje de programación que –como cualquier otro lenguaje– dispone de sentencias para realizar bifurcaciones y bucles. Las bifurcaciones permiten realizar una u otra operación según se cumpla o no una determinada condición. LaFigura 29 muestra tres posibles formas de bifurcación.

false Condición true Sentencias Condición true Bloque 1

false

Condición 1 false Condición 2

true

Bloque 1 true

Bloque 2 false Bloque 3 Bloque 2

Figura 29. Ejemplos gráficos de bifurcaciones.

Los bucles permiten repetir las mismas o análogas operaciones sobre datos distintos. Mientras que en C/C++/Java el "cuerpo" de estassentencias se determinaba mediante llaves {...}, en MATLAB se utiliza la palabra end con análoga finalidad. Existen también algunas otras diferencias de sintaxis.
false Condición true Sentencias Condición false true Sentencias

Figura 30. Bucles con control al principio y al final.

La Figura 30 muestra dos posibles formas de bucle, con el control situado al principio o al final del mismo. Siel control está situado al comienzo del bucle es posible que las sentencias no se ejecuten ninguna vez, por no haberse cumplido la condición cuando se llega al bucle por primera vez. Sin

Aprenda Matlab 7.0 como si estuviera en Primero

página 64

embargo, si la condición está al final del bucle las sentencias se ejecutarán por lo menos una vez, aunque la condición no se cumpla. Muchoslenguajes de programación 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 construcción análoga a do ... while. Las bifurcaciones y bucles no sólo son útiles en la preparación de programas o de ficheros *.m. También se aplican con frecuencia en el uso interactivode MATLAB, como se verá más adelante en algunos ejemplos. 6.1.1. SENTENCIA IF En su forma más simple, la sentencia if se escribe en la forma siguiente (obsérvese que –a diferencia de C/C++/Java– la condición no va entre paréntesis, aunque se pueden poner si se desea)15:
if condicion sentencias end

Existe también la bifurcación múltiple, en la que pueden concatenarse tantas condiciones como sedesee, y que tiene la forma:
if condicion1 bloque1 elseif condicion2 bloque2 elseif condicion3 bloque3 else % opción por defecto para cuando no se cumplan las condiciones 1,2,3 bloque4 end

donde la opción 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 chequeado. Una observación muy importante: lacondición del if puede ser una condición matricial, del tipo A==B, donde A y B son matrices del mismo tamaño. Para que se considere que la condición se cumple, es necesario que sean iguales dos a dos todos los elementos de las matrices A y B (aij=bij, 1≤i≤m, 1≤j≤n). Basta que haya dos elementos aij y bij diferentes para que las matrices ya no sean iguales, y por tanto las sentencias del if no se ejecuten.Análogamente, una condición en la forma A∼=B exige que todos los elementos sean diferentes dos a dos (aij≠bij, 1≤i≤m, 1≤j≤n). Bastaría que hubiera dos elementos aij y bij iguales para que la condición no se cumpliese. En resumen: if A==B if A∼=B exige que todos los elementos sean iguales dos a dos exige que todos los elementos sean diferentes dos a dos

Como se ha dicho, MATLAB dispone de...
tracking img