Professional Documents
Culture Documents
1. Archivos de Comandos
Los archivos de comandos son simplemente archivos M que contienen instrucciones del
MATLAB. Una vez editados, se los guarda con un nombre en algún directorio que se
encuentre dentro del path de búsqueda del MATLAB.
Por defecto, la carpeta de trabajo es el directorio work, que se encuentra dentro de la
carpeta de instalación del MATLAB. Para cambiar este directorio o carpeta de trabajo,
así como agregar nuevas carpetas de biblioteca, se debe usar el Path Browser, o el Set
Path. El primero se encuentra en el editor de archivos M que trae el MATLAB incluido.
Para convocar los archivos M escritos, solo se debe escribir el nombre del archivo
guardado en la ventana de comandos, y las instrucciones que hayan sido escritas serán
ejecutadas.
Aquí se debe notar algo importante; todas las variables que se hayan definido o creado
dentro de este archivo, luego de su ejecución, pasarán a formar parte de nuestro Espacio
de Trabajo, o Workspace. Se debe tratar de que las variables del workspace no
coincidan con las que aparecen en los archivos M que se han de ejecutar.
disp(‘Hola Mundo’)
>> Saludar
Hola Mundo
Ejemplo: Suponemos ahora que tenemos los valores 5 y 3, los dos almacenados en las
variables a y b respectivamente. Definimos ahora un archivo de comandos que
intercambie los valores de esas variables. Escribimos sobre un archivo nuevo lo que se
leen en la figura 2, y lo guardamos con el nombre de Intercambiar.m.
2. Funciones
function[argumentos_salida] = nombre(argumentos_entrada)
IMPORTANTE
El nombre de la función debe coincidir con el nombre de archivo M con el cual se la
guarda. De no hacer esto, podrían existir errores de directorio y/o de ejecución.
Dentro del cuerpo de la función, uno puede “salir” de la función mediante el comando
return. Este comando detiene la ejecución del programa, y devuelve el valor actual de
las variables de salida a la función, procedimiento o rutina que lo convocó.
Ejemplo: Vamos a crear una función que obtenga el conjunto solución para un sistema
de ecuaciones lineales compatible determinado, haciendo uso de una matriz A de
coeficientes, y un vector dado B de términos independientes; es decir, obtendremos un
X0 tal que AX0 = B. Dicho vector X0 será devuelto por la función que se escribe en un
archivo M.
Para esto, se hará uso de la función predefinida rref, la cuál obtiene una matriz de
escalones reducida.
Nuestra función ha de recibir dos parámetros, A y B. por lo tanto éstos se convertirán en
los argumentos de la función, quedando como se ve en la figura 5.
>> A=[1,0,2;5,4,1;-2,1,-1]
A =
1 0 2
5 4 1
-2 1 -1
>> B=[12,4,-8]'
B =
12
4
-8
>> solucion(A,B)
ans =
0.5714
-1.1429
5.7143
Verificándose que:
>> A*ans
ans =
12
4
-8
Como puede verse, esta función siempre devuelve una “solución”, la cuál puede no ser
correcta si estamos ante un sistema incompatible.
Tampoco se consideran casos de indeterminabilidad.
Además, y este es tal vez el error más grande, no se toma en cuenta el hecho de que la
matriz A puede no ser ampliable con el vector de términos independientes B.
Con estas consideraciones, se puede concluir que este programa no es útil, o no está
completo.
Consigna:
Ejecutar el algoritmo con otras matrices y vectores de términos independientes.
Investigar sobre el funcionamiento de la instrucción size.
Realizar algunos casos de prueba con sistemas de ecuaciones incompatibles e
indeterminados.
3. Comentarios
Una de las herramientas más útiles para los programadores son los comentarios.
Mediante éstos, se puede hacer más legible el código fuente, estructurado y mantenible.
Los comentarios se introducen con el símbolo “%”; cuando este símbolo aparece, todo
lo que sigue a partir de él hasta el final de la línea se considera como un comentario.
Todo lo que sea un comentario dentro de un programa, es simplemente ignorado por el
intérprete.
Además de las utilidades antes mencionadas, los comentarios en MatLab se usan para
crear el archivo Help de una función.
El archivo Help de una función es una especie de “Léeme” que indica el funcionamiento
básico de la función, así como su definición y los argumentos que puede recibir.
Para definir un archivo Help, o simplemente Help, de una función o un archivo de
comandos, se escribe como comentario todo lo que se quiere que este Help contenga,
justo después de la definición de la función, para el caso de los archivos de función; o al
inicio del archivo, en los archivos de comandos. El final del Help de un archivo se
marca con una separación mediante una línea en blanco.
Consigna:
Convocar al archivo Help de la función modificada y extraer conclusiones sobre
su funcionamiento.
Las valores booleanos, en general, sólo pueden tomar dos valores: Verdadero o Falso
(True y False en los lenguajes de programación).
MatLab no maneja los valores True y False para este tipo de expresiones, sino que
representa a True con un 1, y a False con un 0.
Los operadores de comparación son operadores que devuelven un valor booleano.
Estos operadores se listan a continuación:
<: Menor que
>: Mayor que
<=: Menor o igual que
>=: Mayor o igual que
~=: Distinto que
==: Igual que
Existen también los operadores que trabajan directamente sobre los valores booleanos,
para devolver otro valor booleano. Estos se conocen como operadores booleanos, y
aparecen a continuación:
&: ‘y’ lógico (And)
|: ‘ó’ lógico (Or)
~: ‘no’ lógico (Not)
Consigna:
En la Command Window del MatLab escribir las siguientes líneas y sacar
conclusiones:
1. 23==23
2. 51~=51
3. 0&1
4. ~0
Consigna:
En la ventana de comandos escribir las siguientes sentencias y extraer
conclusiones:
1. (23>25)|(23<25)
2. (23>22)&(23<25)
3. (29==71)|1
4. (29<71)|((31==30)&(25==26))
5. ((29<71)|(31==30))&(25==26)
Explicar la diferencia entre el punto 4 y el punto 5.
Investigar o desarrollar otra forma realizar las operaciones booleanas, definiendo
mediante el anillo de las clases residuales módulo 2.
5. Estructuras de control
5.1 Bifuracciones
if <condición>
<acciones a realizar por respuesta afirmativa>
else
<acciones a realizar por respuesta negativa>
end
Una forma de ampliar esta estructura es haciendo uso del elseif. Esta palabra permite
hacer varias evaluaciones, y, por lo tanto, obtener más de dos posibles alternativas.
Abajo se muestra la sintaxis para el uso del elseif.
if <condición 1>
<acciones a realizar para condición 1>
elseif <condición 2>
<acciones a realizar para condición 2>
else
<acciones a realizar si ninguna condición se cumple>
end
Ejemplo:
Vamos a continuar mejorando la función “solución” planteada haciendo uso de los
comandos if... then…else…end.
Puede verse claramente que en la función nunca se controla el hecho de que la matriz A
tenga la misma cantidad de filas que el vector de términos independientes B; por lo
tanto agregamos un pequeño control que monitoree que se cumpla esta condición.
Además, tenemos que vigilar que el sistema sea compatible determinado para obtener la
solución correcta.
Luego, pediremos que el rango de la matriz A coincida con el rango de la ampliada, así
como con el número de incógnitas.
Estas modificaciones sobre la función pueden apreciarse en la figura 5.
Consigna:
Ejecutar la función con la nueva modificación desde la ventana de comandos para
valores válidos e inválidos de matrices A y B. Extraer conclusiones:
1. ¿Qué devuelve el programa al ingresar dos matrices con el mismo número de
filas?
2. ¿Qué devuelve el programa el ingresar dos matrices con distinto número de
filas?
3. ¿Qué devuelve el programa al ingresar una matriz de coeficientes
correspondiente a un sistema de ecuaciones incompatible?
4. ¿Qué respuesta se obtiene ante un sistema que admite infinitas soluciones?
5. ¿Cómo funciona el comando size dentro del programa?
6. ¿Cómo funciona el comando error dentro del programa?
La sentencia switch se usa para crear una estructura Case de control como la que se
muestra en la figura 6.
Esta estructura puede entenderse como varios elseif anidados, con la diferencia de que
en la estructura case no se controlan expresiones booleanas, sino valores de una
determinada expresión.
Expresión a evaluar
La variable tomará el valor de cada columna y ejecutará las sentencias definidas, hasta
llegar al final del arreglo.
En los casos particulares para los cuales será usada esta instrucción, el arreglo de
elementos no es más que un vector de una fila y N columnas; por lo tanto, la variable
sólo tomará valores escalares, como en el ejemplo de código que sigue:
for i=1:N
<Sentencias>
end
Aquí, el arreglo, o vector, está dado por 1:N, es decir, una matriz de la forma
[1, 2, 3,…, N].
Ejemplo:
A continuación se presenta un pequeño ejemplo del uso de esta instrucción. El
algoritmo busca un elemento dentro de un vector que recibe como parámetro.
Para este sencillo algoritmo no se consideraron todos los posibles casos, sino que se lo
presenta más bien a modo de ilustración del funcionamiento del comando For.
En la figura 9 aparece el programa, con su correspondiente Help, y algunos comentarios
que explican algunas variables.
while <Condición>
<Sentencias>
end