Professional Documents
Culture Documents
Comandos utiles
Nuestro objetivo ser realizar comandos sin la necesidad de ingresarlos en la command window, para
ello contamos con los scripts y funciones m-file. Ambos son archivos .m y se crean en el editor de
MATLAB o usando cualquier editor de texto plano y guardando el archivo con extensin .m
Estructuras de Control
Cuando ya los algoritmos de resolucin son ms complejos se requiere utilizar estructuras que alteren
el flujo normal de trabajo de los comandos, para ello en MATLAB se cuenta:
If - elseif - else
Permite realizar preguntas usando operadores lgicos durante el flujo del programa para realizar
distintas operaciones segn sea la respuesta
Por ejemplo podemos preguntar es 'x' menor que 2? si es as, entonces le sumamos 1, en caso
contario hacemos nada
La estructura del if, for y while siempre hay que indicar su fin y para ello se utiliza la palabra end
x=0.5;
if x<2
x=x+1;
end
x
x = 1.5000
Pero podemos realizar preguntas ms complejas y adems operaciones en casos de que la pregunta
resulta en una respuesta negativa
Por ejemplo es 'x' menor que 0? si es as se multiplica por -1, en caso contrario se multiplica por 2:
x=3;
if x<0
x=x*-1;
else
x=2*x;
end
x
x = 6
x=0;
if x<0
x=-1*x
elseif x==0
x=pi
else
x=2*x
end
x = 3.1416
En resumen: la primera pregunta se realiza usando if, las preguntas siguientes en caso de que la
primera sea negativa se realizan usando elseif, y si ninguna de las anteriores ocurre entonces se
usa else y se cierra la estructura escribiendo end.
For
Permiten realizar ciclos repetitititivos hasta que cierta condicin se cumpla, para el for siempre es para
realizar una tarea una 'n' cantidad de veces mientras que el while se ejecuta mientras una condicin
cualquiera expresadas con operadores lgicos sea falsa.
HACER_LO_QUE_HAYA_QUE_HACER
end
Por costumbre a veces se usa como contadores las letras 'i' o 'j' las cuales no se recomiendan dado
que representan el nmero imaginario en MATLAB
x=0;
for t=1:10^6 %contador t desde 1 hasta un millon
x=x+0.1;
end
x
x = 1.0000e+05
Siempre que se deba realizar una misma tarea varias veces, ponemos aquella tarea dentro del ciclo
repetitivo.
Nota: Hemos de esperar que la suma un millon de veces de 0.1 resulte en cien mil
sin embargo en MATLAB esto no ocurre; si revisamos el valor de x pidiendo mas decimales usando el
comando format long:
format long
x
x =
1.000000000013329e+05
While
El while tiene una sintaxis parecida:
while CONDICION
HACERLOQUEHAYAQUEHACER
end
Ejemplo:
x = 6.2512
x = 8.0994
x = 3.9356
x = 7.7780
x = 4.7932
x = 8.7276
x = 2.3138
Dado que el ultimo valor es 2.3 el cual es menor que 3, la condicin tiene un valor falso lo cual hace
terminar el while.
Ejemplo:
Usando while haremos una aproximacin del limitando el nmero de trminos a calcular y el error
de la aproximacin usando la expresin:
Cuando se usa la forma recurrente de x=x+algo o x=x*algo u otras operaciones, se dice que x es
un acumulador pues en cada iteracin almacena una operatoria recurrente en si misma.
aprox=aprox+(-1)^k*x^(2*k+1)/(factorial(2*k+1));
error=abs(aprox-sin(pi/4));
k=k+1;
end
k
k = 3
aprox
aprox = 0.7071
error
error = 3.6265e-05
Nota: Es buena idea siempre tener un mximo de iteraciones a realizar dado que no todas las tareas
convergen a un resultado que satisface el objetivo del while, si eso ocurre el programa se queda
iterando para siempre.
switch variable
case valor1
operacion1
case valor2
operacion2
otherwise
operacion3
end
x=0;
switch x
case 1
y=exp(x+1)
case 0
y=1
case -1
y=-exp(x+1)
otherwise
disp('valor no valido')
end
y = 1
Funciones M-File
En los scripts podemos realizar las lneas de cdigo tal como si fuesen ingresadas por la ventana de
comandos y cada variable quedara guardada normalmente en el workspace, sin embargo si se quiere
cambiar valores entonces se debe modificar el script.
Por otra parte las funciones m-file son programas que tienen datos de entrada y de salida definidos por
la siguiente sintaxis
Los datos de salida van entre parntesis cuadrados, los datos de entrada en parntesis
redondos.
IMPORTANTE ----> El nombre de la funcin debe concordar con el nombre del archivo .m
function [salida1,salida2]=nombre(entrada1,entrada2,entrada3)
Algoritmo
end
Las variables creadas en la funcin son variables locales, eso quiere decir que no quedan almacenada
en el workspace.
Ejemplo:
function y=ejemplo_ramas(x,a)
if x<0
y=a*x^3;
elseif x>=0 && x<3
y=x/2;
else
y=3*a;
end
end
Luego en la ventana de comandos se invoca la funcion usando la primera linea sin la palabra function:
valor=ejemplo_ramas(-2 , 5)
valor = -40
Los nombres x a y solo existen dentro de la funcin no alterando los valores de variables en
workspace; los nombre de las variables no importan al invocar la funcin, solo el nmero y orden de
variables de entrada y salida. La funcin ejemplo_ramas tiene dos variables de entrada y una de salida,
por tanto al invocarla hay que hacerlo con el mismo nmero de variables y en el orden correspondiente.
Referencias
MatWorks
<:>:<:>:<:>:<:>:<:>:<:>:<:>:<:>:<:>:<:>:<:>:<:>:<:>:<:>:<:>
----- Sientente libre de modificar y redistribuir este documento bajo los terminos de GNU General Public
License en su version mas actual. https://www.gnu.org/licenses/