Vous êtes sur la page 1sur 6

PROGRAMA DE INGENIERÍA CIVIL, UAZ

MATLAB

EL LENGUAJE DE LA COMPUTACIÓN TÉCNICA Y CIENTÍFICA

Mayo 2014

Computación II
INGENIERÍA CIVIL, UAZ

Archivos-M (M-files)

Hasta el momento hemos visto que para completar un cálculo en MatLab, tenemos que
teclear varios comandos (y varias líneas a la vez) uno por uno en la ventana de comandos
(Command Window). Al hacer esto, se cometen errores que retardan nuestros cálculos, ya
que si se está trabajando en la ventana de comandos, se requiere volver a meter todos o
parte de los comandos y variables o constantes antes definidas (todo esto integraría un
programa o –script–). Aún si no se tienen equivocaciones, todo el trabajo puede ser perdido
si se cierra inadvertidamente MatLab y no se realizaron los pasos necesarios para guardar el
contenido de las tareas o cálculos realizados. Esto último, es precisamente lo que
evitaríamos al crear un programa que justo guarde el código (instrucciones de nuestros
cálculos) para poderlas ejecutar cuando se desee. Entonces, para preservar largas series de
comandos, se pueden almacenar en un tipo especial de archivo denominado un archivo-M
(M-file).
MatLab soporta dos tipos de M-files: script y function. Para mantener una gran colección de
comandos, usamos un script M-file. La function M-file será tratada más adelante. Para crear
un script M-file, se requiere abrir un archivo usando el constructor MatLab Editor
incorporado en MatLab. Esto es, primero seleccione New desde el menú File, luego
seleccione M-file de las opciones desplegadas. Después meta los contenidos en el M-file, y
posteriormente guarde (save) el archivo. Para guardar el script (programa) considere lo
siguiente:

i. Seleccione el comando save as desde la ventana del archivo, ubicada en el


menú File. Se abrirá una ventana para que asigne el nombre del programa o
del archivo que contendrá el script correspondiente, tenga cuidado al asignar
el nombre de su archivo (cerciórese de que el nombre del archivo no
corresponda al de alguna abreviación matemática, al nombre de una función
matemática, o al de alguna constante manejada por MatLab). También
cerciórese de que el nombre del archivo tenga la extensión .m añadida al final
de su nombre.
ii. Guarde el archivo en el subdirectorio por default, en este caso MatLab tiene
como fólder o carpeta por default a work (C:\Archivos de
programa\MATLAB7\work, para la versión 7.4 ó anteriores) y la carpeta
MATLAB para versiones recientes (en la ruta, C:\Mis
documentos\MATLAB) y tenga especial cuidado en dónde queda guardado su
archivo, ya que aunque puede ser guardado donde nosotros le especifiquemos,
se recomienda crear algunas subcarpetas dentro de la carpeta de trabajo para
tener el control sobre los mismos.
iii. Para correr (run) su script M-file, justo meta o teclee el nombre del archivo
(omitiendo la extensión .m que completa al nombre del archivo) en el prompt
de MatLab (en la Command Window). Verifique que al momento de correr el
programa (introducir el nombre en la Command Window, o por cualquiera de
las vías existentes) se encuentre en el fólder o carpeta donde está contenido el
archivo del programa que quiere ejecutar; de lo contrario, le aparecerá en la
Command Window un error (indicando que el nombre que se introdujo es

M. I. Fidel A. Ortiz Robles Computación II


2/6
miarh.uaz@gmail.com Segundo Semestre
INGENIERÍA CIVIL, UAZ

desconocido) y no podrá correr el programa sobre las rutas conocidas de


MatLab.
iv. Para editar el programa o hacer alguna modificación, ampliación o corrección,
simplemente teclee en el prompt de la Command Window, lo siguiente: edit
‘nombre del archivo’. Tenga cuidado en que cada que modifique su
programa, se guarden los cambios (nunca se le olvide guardar los cambios,
save).

MATLAB Programming (Programación en MATLAB)

Uno de los potenciales de MatLab es su propio lenguaje de programación, definido como


un lenguaje de alto nivel, ya que no requiere de un conocimiento profundo de programación
para poder desarrollar programas o scripts de alto nivel. La programación simple, pero
estructurada, debe seguir un orden y legibilidad adecuada para que cualquier persona con
conocimientos mínimos de programación pueda entender las líneas del script; esto es, todo
programa o script bien estructurado debe cumplir con los siguientes puntos: secuencia,
poder de decisión, repetitivo y finito.
Para poder cumplir con algunos de los aspectos anteriores, se pueden ejecutar los
comandos, bucles, loops o circuitos iterativos básicos de la programación, estos son: “for-
end” y el “while-end”. Lo anterior, se complementa con los comandos o bucles selectivos,
tales como: “switch-case-end” y el “if-else-end”, simples y múltiples, que se describen
enseguida.

Loops iterativos-repetitivos (bucles o circuitos iterativos)

El poder de las computadoras consiste en su habilidad para ejecutar un gran número de


cálculos repetitivos. Para hacer esto sin necesidad de estar metiendo el valor de un
parámetro o variable cada vez que estos sean cambiados, todos los lenguajes de
computadora tienen estructuras de control que permiten que los comandos sean ejecutados
y controlados mediante un contador de variables, y MatLab no es diferente en este aspecto.
Por ejemplo, el loop “for” de MatLab permite que una declaración o un grupo de
declaraciones sean repetidas.

Ejemplo 1. Generar el cuadrado de los primeros diez enteros.

Solución: Editar y ejecutar el siguiente script M-file:

for m = 1:10
x(m) = m^2;
end

En este caso, el número de repeticiones está controlado por el índice de la variable m, la


cual toma los valores que van desde m = 1 hasta m = 10 en intervalos de 1. Por lo tanto,
fueron hechas diez asignaciones. Lo que hace el loop anterior es asignar secuencialmente

M. I. Fidel A. Ortiz Robles Computación II


3/6
miarh.uaz@gmail.com Segundo Semestre
INGENIERÍA CIVIL, UAZ

los diferentes valores de m^2 (i. e., m2) en cada elemento del “arreglo-x”. Un arreglo es
justo una estructura de datos que puede mantener múltiples entradas y salidas. Y como ya
lo hemos señalado, los arreglos en 1-D y 2-D son paquetes encasillados de números o pares
ordenados de números respectivamente, asignados a ellos.
Para encontrar el valor de una casilla en particular del arreglo, tal como la casilla o
elemento 3, metemos:

x(3)

Para leer todos los valores almacenados en el arreglo, tecleamos:

Pregunta: Qué obtendrán si ustedes meten o teclean m sobre el prompt de la Ventana de


Comandos?

Estructuras selectivas (decisión-selección)

Si una secuencia de comandos debe ser condicionalmente evaluada basada sobre una
prueba relacional (condicional), la programación de esta relación lógica es ejecutada con
alguna variación de una estructura if-else-end.

A. La forma más simple de esta estructura es:

if expresión
comandos evaluados si la expresión es Verdadera
else
comandos evaluados si la expresión es Falsa
end

Notas:
1. Los comandos entre las declaraciones if y else son evaluados si todos los
elementos en la expresión son verdaderos.
2. La expresión condicional usa los símbolos lógicos boolean & (y), | (o), y ~
(no, o negación) para conectar diferentes acciones o proposiciones.

Ejemplo 2. Encontrar para el entero 0 < a ≤ 10 , los valores de C, definidos como


sigue:
 ab para a > 5

C = 3
 2 ⋅ ab para a ≤ 5
y b = 15.

M. I. Fidel A. Ortiz Robles Computación II


4/6
miarh.uaz@gmail.com Segundo Semestre
INGENIERÍA CIVIL, UAZ

Solución: Editar y ejecutar el siguiente script M-file:

for a = 1:10
b = 15;
if a > 5
C(a) = a*b;
else
C(a) = a*b*3/2;
end
end

Checar que los valores de C que obtuvo, sean:


22.5 45 67.5 90 112.50 90 105 120 135 150

B. Cuando hay tres o más alternativas, la estructura if-else-end toma la forma siguiente
sintaxis:

if expresión 1
comandos 1 evaluados si la expresión 1 es Verdadera
elseif expresión 2
comandos 2 evaluados si la expresión 2 es Verdadera
elseif expresión 3
comandos 3 evaluados si la expresión 3 es Verdadera

else
comandos evaluados si ninguna de las expresiones anteriores es
Verdadera
end

En esta forma, únicamente los comandos asociados con la primera expresión


encontrada como verdadera son evaluados; las expresiones relacionales siguientes
no son probadas.

Sintaxis alternativa para la declaración if

Como una alternativa para la sintaxis if, se puede usar, en ciertas instancias, expresiones
booleanas para especificar una expresión en diferentes dominios. Por ejemplo, x >= 1 tiene
el valor 1 si x es mayor o igual a 1 y cero para lo contrario; y, x <= h es igual a 1 cuando x
es menor o igual a h, y cero para el caso contrario. Las operaciones relacionales permitidas
en las expresiones condicionales, son: = =, < =, > =, ~ =, <, >.

M. I. Fidel A. Ortiz Robles Computación II


5/6
miarh.uaz@gmail.com Segundo Semestre
INGENIERÍA CIVIL, UAZ

Tarea Nº

Desarrolle adecuadamente los siguientes puntos:

1. Para los valores del entero a que van desde 1 hasta 10, usando separadamente los
métodos de la sintaxis “if” y las expresiones alternativas booleanas (operadores
relacionales y lógicos), encontrar los valores de C, según se indica a continuación:

C = a2 para a<3
C = a + 5 para 3≤ a <7
C=a para a≥7

Use el comando “stem” para mostrar gráficamente a C (los valores resultantes).

2. Para completar las estructuras de control que maneja MatLab, consulte y describa la
estructura de selección “switch-case-end”, y la estructura repetitiva “while-end”. Y
proporcione un ejemplo para cada una de las estructuras de control anteriores.
Apóyese en los tutoriales y manuales que se le han proporcionado, así como en la
propia ayuda que está contenida en el ambiente MatLab.

3. El uso de la estructura repetitiva del loop “for”, es un tipo de programación-loop


muy ineficiente y debe ser evitada en cuando sea posible en MatLab. En este sentido,
indique claramente por qué es más eficiente utilizar (cuando se pueda) algunos
comandos o funciones que permiten generar arreglos de una o varias dimensiones,
con espaciamientos enteros y no enteros (como por ejemplo, el uso de la función
linspace, entre otras). Proporcione algunos ejemplos de aplicación para que
responda con claridad a lo que se le pide.

Comentarios u observaciones:

Nombre y grupo:

Fecha de entrega:

M. I. Fidel A. Ortiz Robles Computación II


6/6
miarh.uaz@gmail.com Segundo Semestre

Vous aimerez peut-être aussi