matlab basico v1.3
TRANSCRIPT
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 1
Contenido 1. Matlab y sus generalidades ......................................................................................................... 3
2. Comand window y sciprt ............................................................................................................. 5
3. Operaciones de cálculo ............................................................................................................... 5
4. Script ........................................................................................................................................... 6
5. Funciones .................................................................................................................................... 7
6. Funciones trigonométricas .......................................................................................................... 9
7. Matemáticas simbólicas ............................................................................................................ 10
8. Derivación ................................................................................................................................. 11
9. Integración ................................................................................................................................ 12
10. Ecuaciones de una variable ................................................................................................... 12
11. Matrices ................................................................................................................................. 14
12. Matrices 1Xn ......................................................................................................................... 15
13. Matrices nXn y solución de sistemas nXn ............................................................................. 16
14. Graficas .................................................................................................................................. 17
15. Varias graficas ....................................................................................................................... 19
16. Graficas 3D ............................................................................................................................ 23
17. Llamadas (ingreso de datos por pantalla) ............................................................................. 25
18. Llamadas por graficas ............................................................................................................ 25
19. Impresiones ........................................................................................................................... 27
20. Find ........................................................................................................................................ 27
21. If............................................................................................................................................. 28
22. For ......................................................................................................................................... 29
23. While ..................................................................................................................................... 30
24. Switch case ............................................................................................................................ 31
25. Celdas .................................................................................................................................... 32
26. Funciones personalizadas ..................................................................................................... 33
27. Caja de funciones propias ..................................................................................................... 36
28. Llamados ............................................................................................................................... 37
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 2
29. Graficacion de ecuaciones simbólicas ................................................................................... 37
30. Interpolación ......................................................................................................................... 38
31. Regresión ............................................................................................................................... 39
32. Animaciones .......................................................................................................................... 39
33. Métodos numéricos .............................................................................................................. 40
34. Guide (interfaz grafica) .......................................................................................................... 41
35. Comandos Útiles ................................................................................................................... 56
36. Curiosidades .......................................................................................................................... 56
37. Errores comunes ................................................................................................................... 56
Referencias ........................................................................................................................................ 57
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 3
1. Matlab y sus generalidades
Se debe tener en cuenta que como su nombre lo indica matlab es un programa diseñado
principalmente con la intención de trabajar matrices, aunque está diseñado para tales fines,
también se puede trabajar números normales.
En matlab podemos definir variables, es decir a=…., de tal forma que matlab asociara la variable a
con el numero asignado.
Nota: Se debe tener en cuenta que ; al final de la línea lo que hace es no imprimir cuando se corre
el programa, también puede servir de separación de tal forma que se podrían escribir varias líneas
en una sola si asi se desea (aunque no es muy aconsejable) .
Matlab asume el , como separación de números es decir para generar matrices, para los números
decimales se usa . .
Ejemplo:
A=5;B=8;C=9;
Lo que hace matlab en la línea anterior es definir la variable A,B,C con los números asignados, y no
los imprime a diferencia de las siguientes líneas :
Ejemplo:
A=5
B=8
C=9
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 4
Lo que hace matlab es en las líneas anteriores es definir las variables A,B,B con los números
asignados y los imprime.
Lo que se muestre en la imagen anterior es una forma de copiar y pegar las líneas a también se
puede hacer de la siguiente manera:
En vez de poner enter al final de la línea le dan enter+shift , lo cual les permite escribir debajo sin
que matlab ejecute la línea anterior (aunque efectos varios da igual).
En el workspace se puede ver que las variables asignadas están con el número
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 5
2. Comand window y sciprt
Diferencias:
En el comand window se pueden hacer pequeñas operaciones donde no se necesite guardar el
archivo (operaciones que se realizaron), se debe tener en cuenta que el comando window no
guarda estas operaciones, quiere decir que si se necesita realizar un proceso que se encuentra
compuesto por varias operaciones se tienen que reescribir.
En el script se pueden guardar varios programas, ya que estos sean programas sencillos hasta
funciones, en el script también podemos dividir este en celdas con las cuales se divide un script
para generar varios programas (generalmente se realiza más que todo para hacer pruebas, de
como el programa está funcionando).
La principal ventaja de trabajar en el script es que se puede modificar con facilidad, es decir si se
equivoca y se pone un mas en lugar de un menos este se puede cambiar, en vez de tener que
reescribir el código nuevamente.
3. Operaciones de cálculo
Las operaciones básicas entre dos escalares o matrices en matlab son:
Suma…………………………..+
Resta…………………………..-
Multiplicación……………..*
División………………………../
Exponencial…………………^
Agrupación………………….()
EL orden en que se van a realizar las operaciones de cálculo son:
Agrupación (adentro hacia afuera)……………………….()
Exponenciación (izquierda a derecha)….................^
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 6
Multiplicación y división(izquierda a derecha)…….*/
Suma y resta (izquierda a derecha)………………………+-
4. Script
En el srcipt se pueden hacer programas muchos más complejos con varias líneas donde estas no
se ejecutaran cada vez que se le de enter como en el workspace, y para correr estos (ejecutarlos)
se puede mediante el icono run o dándole F5.
Las principales utilidades del script es que este nos muestra si el programa esta correcto o
incorrecto (tiene error de programación o no).
Cuando en la esquina derecha superior se encuentra el cuadro en verde significa que no tiene
errores.
Generalmente cuando se pone este cuadro en naranja significa que hay errores no muy graves.
Como que error: El más común es cuando al terminar una línea esta no se cierra con ; .
Ejemplo:
A=4
Aunque no es un error de programación matlab lo asume como uno de sintaxis incorrecta.
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 7
Incluso si se deja A, ya que la línea no se cierra con ; matlab por lo general pone ese error, debido
a esto generalmente lo que se revisa es que el cuadro este en naranja.
Un error de programación crítico es cuando este cuadro esta en rojo, esto significa que no correrá
el programa.
Por lo general debajo de este aparecerá una línea roja en la línea correspondiente, o al momento
de correr el programa en el coman window allí aparecerá en que línea esta el primer error si es
que hay más de uno.
Para guardar el script seleccionamos file-save as-______.
Al momento de correrlo seguramente matlab les pedirá cambiar la dirección de ejecución en ese
se debe poner chance folder.
5. Funciones
Algunas de las funciones más usadas de matlab son las siguientes:
Valor absoluto=abs
Logaritmo=log
Logaritmo base 10=log10
Euler=exp
Raiz cuadrada=sqrt
Redondear al entero mas cercano=round
Redondear al entero inferior=floor
Redondear al entero superior=ceil
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 8
La estructura para la función es la siguiente:
Función (valores o variables)
Ejemplo:
abs(-3)
Esta línea imprime el valor 3.
Ejemplo:
A=-4
B=abs(A);
B
Lo que hacen las líneas anteriores es:
Primera línea: Se define la variable A como -4 y no se imprime debido al ; .
Segunda línea: Se define la variable B como el valor absoluto de la variable A y no se imprime
debido al ; .
Tercera línea: Imprime la variable B.
En este caso se puede omitir la última línea si a la segunda línea se la quita ;.
También se puede expresar una función en términos de otra.
Ejemplo:
A=4;
B=sqrt(A);
C=exp(B)
Lo que hace las líneas anteriores es lo siguiente:
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 9
Primera línea: define la variable A como 4 y no lo imprime.
Segunda línea: define la variable B como la raíz cuadrada de A y no lo imprime.
Tercera línea: define la variable C como Euler de B y lo imprime.
Otra forma de hacerlo es la siguiente:
Ejemplo:
C=exp(sqrt(4))
Como se puede ver en una línea se comprime lo que se hizo en tres con el mismo efecto, junto con
su impresión.
Lo que se debe tener en cuenta cuando se maneja de esta manera es los paréntesis matlab por lo
general ayuda con esto.
Nota: la raíz cuadrada en función que es sqrt() se puede remplazar por ^(1/2) o ^0.5 donde lo que
se hace es expresar la raíz como una potencia o como un numero.
6. Funciones trigonométricas
Algunas de las funciones trigonométricas son:
Seno=sin
Coseno=cos
Tangente=tan
Inversa de seno=asin
Inversa de coseno=acos
Inversa de tangente=atan
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 10
Matlab trabaja en radianes a menos de que se especifique lo contrario, en nuevas versiones de
matlab funciones como sind, cosd, tand, indican que se están trabajando en grados y no en
radianes.
Ejemplo:
A=sind(cos(0.5))
En este caso lo que hace el programa es hallar el coseno (en radianes) de 0.5 y el resultado le halla
el seno en grados.
Nota: Se debe tener en cuenta que estas funciones nuevas (sind,cosd,tand,…) por lo general no se
pueden integrar ni derivar.
7. Matemáticas simbólicas
Existen dos formas de hacer las variables simbólicas.
1. X=sym(‘x’)
Lo que hace esto es decirle a matlab X es un símbolo en este caso x.
Se debe tener en cuenta que esta forma es muy poco útil debido a su utilidad y sus posibles
confusiones, ya que se puede decir X=syms(‘a’), lo cual generaría que X es un símbolo a. lo cual se
presta para confusiones.
2. Syms x,y,z
Por lo general esta línea se encuentra al inicio del programa y en esta línea se colocan todos los
símbolos que se utilizan en el programa.
Nota: se debe tener en cuenta que las funciones nuevas como sind, cosd ,tand no sirven con las
variables simbólicas.
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 11
8. Derivación
La derivación como comando en matlab es diff, matlab deja derivar en forma simbólica si así se
desea de tal manera que obtendremos la ecuación derivada.
Ejemplo:
diff(f)
La línea anterior deriva una función f, pero en dado caso de que la función depende de más de una
variable matlab por lo general la derivar con respecto a x,y,z,t sin seguir ese orden exactamente
por lo cual lo mas recomendado es decirle a matlab contra que lo queremos derivar.
Ejemplo:
Si decimos
diff(f,a)
Derivara la función f con respecto a a, pero si decimos:
diff(f,x)
Derivara la función f con respecto a x.
Matlab también nos da la opción de la n-esima derivada el comando es:
diff(función,variable,#derivada)
Ejemplo:
diff(f,a,4)
Lo la línea anterior matlab la asuma como la cuarta deriva de f con respecto a a.
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 12
9. Integración
La opción de integración también es una herramienta muy útil de matlab, en el caso de la
integración se debe tener en cuenta que no se puede hacer la n-esima integración, si se desea
hallar la segunda se tendrá que hacer una por una, de igual manera que en la derivada lo más
recomendable en las integrales es decirle con respecto a que se desea que se integre.
Ejemplo:
int(f,x)
En las integrales muchas veces se tienen límites, estos matlab los puede trabajar numéricos o
simbólicos.
Matlab en cierta forma es un poco complejo en la parte de límites, se debe tener en cuenta que
usa la estructura int(función,variable,limite inferior,limite superior).
10. Ecuaciones de una variable
Decimos que es una ecuación de una variable cuando su resultado depende de la variable.
Lo que se hace normalmente en estos casos es realizar una grafica o evaluarla en un punto.
Lo ideal de cuando se realiza una grafica es que el intervalo entre punto y punto sea muy pequeño.
Para solucionarlo mediante un punto determinado tendremos una función f(x), le diremos a
matlab:
x=numero
F(x)=función que dependa de x
De tal manera que F(x) quede expresado como un número.
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 13
Ejemplo:
x=3;
F=x^2
Matlab asumirá x como 3 de la primera línea y en la segunda línea lo elevara al cuadrado.
Cuando se usa una función de manera simbólica diremos:
Syms x
F(x)=función
X=numero
eval(f(x))
Lo que quiere decir que nos evalué la función f(x) en el punto x especificado, la ventaja de esto es
que nos guardara f(x) como una función que depende de x.
La principal ventaja de esta forma de programación es cuando queremos revisar varios números
sin usar graficas.
Ejemplo:
syms x
f=x^2+x;
x=8
a=eval(f)
x=9
b=eval(f)
La primea línea dice que x es simbólica.
La segunda línea define una ecuación.
En la tercera línea define la variable x como 8, cambiándola de simbólica a numérica e imprime
este valor.
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 14
En la cuarta línea nos dice que avaluara la función f con respecto a x=8, e imprime este valor.
En la quinta línea define la variable x como 9, de tal manera que reescribe la x e imprime el nuevo
valor.
En la sexta línea evalúa la función f con respecto a x (la nueva es decir 9).
Se debe tener en cuenta que como tal f nunca se reescribió de tal manera que si le pedimos a
matlab f nos bota la ecuación original simbólicamente.
11. Matrices
Las matrices son arreglos numéricos los cuales están conformados por m líneas y n columnas.
Estos números se encuentran entre corchetes cuadrados [], también se puede trabajar con
simbólicas.
Se debe tener en cuenta que en la manipulación de estas, después de llamar dicha matriz se pone
un . si se desea elemento por elemento. (si se desea hacer una multiplicación por un escalar o una
potencia).
Las matrices en matlab se dividen de la siguiente manera:
Horizontal con un espacio o , .
Vertical con ; o con un enter.
Ejemplo:
A=[1,2,3;4,5,6;7,8,9]
Genera una matriz
De igual manera se puede expresar un código como el siguiente
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 15
Ejemplo:
A=8;
B=2*A;
C=A^B;
M=[A,B,C]
Otra forma de escribir una matriz es mediante la llamada de elemento y posición individualmente.
Ejemplo:
Vamos a llamar una matriz s, la cual pensamos hacer de la forma 3X3.
Para esto podemos ingresar valor por valor de la forma
s(1,1)=a;s(1,2)=b,s(1,3)=c;
s(2,1)=f;s(2,2)=g;s(2,3)=h;
s(3,1)=i;s(3,2)=j;s(3,3)=k;
12. Matrices 1Xn
Las matrices de la forma 1Xn (1 fila y n columnas) son las más utilizadas en matlab, ya que a partir
de estas se crean las graficas.
Generalmente estas se utilizan al ser multiplicadas por un escalar o una suma o resta.
Ejemplo:
X=[0 1 2 3 4 5]
F=X.*8
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 16
Como se puede apreciar el tamaño de la matriz F, y el tamaño de la matriz X es el mismo, ya que la
matriz F depende de la matriz X.
Dado el caso que se desee crear una matriz y que sus números tengan un intervalo definido y
constante se puede crear una matriz rápida y muy larga con el siguiente comando (punto
inicial,intervalo,punto final), dado que no se ponga un intervalo matlab lo asumirá como 1
automáticamente.
Ejemplo:
A=(0:0.1:1)
Crea una matriz que va desde cero hasta 1 con un intervalo entre componentes de 0.1.
13. Matrices nXn y solución de sistemas nXn
Las matrices cuadradas sirven en la mayoría de los casos principalmente para solucionar sistemas
de ecuaciones cuadrados, como ya mencionamos anterior mente como se crean nos enfocaremos
a la parte de solución de sistemas.
Generalmente tenemos un problema como el siguiente:
A*B=C
Donde sabemos que A es una matriz cuadrada (problema), B es una matriz de n filas y una
columna (respuesta), y la matriz c de n filas y una columna (solución).
Donde normalmente se conoce A y C.
Ya que sabemos que una matriz no se puede dividir diremos que al hallar su inversa la podremos
multiplicar y así hallar la matriz respuesta es decir:
B=C*A-1
Ejemplo:
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 17
A=[1 2;3 4];
C=[5;6];
B=(A.^(-1))*C
14. Graficas
Para graficar matlab realiza las graficas de una forma matricial.
Teniendo en cuenta que se deben de poner matriz semejantes (igual número de componentes).
Se debe tener en cuenta que matlab no las llama graficas las llama figuras.
Las opciones más comunes de graficas son:
plot()
semilogx() (log en el eje x)
semilogy() (log en el eje y)
loglog() (log en ambos ejes)
polar() (grafica polar)
Algunas opciones de las graficas son:
grid on (pone cuadricula)
xlabel (nombre del eje x)
ylabel (nombre del eje y)
title(‘nombre’) (le pone nombre a la figura)
hold on (mantiene la grafica de modo que se pueden superponer graficas)
Generalmente se puede solucionar una ecuación de una variable por este método.
Las graficas 2D se generan de la siguiente manera:
X=[a b c d]
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 18
Y=[e f g h]
De tal manera que el primer punto será en la coordenada (a,e), después de dirige a la coordenada
(b,f), después a (c,g), y por último a (d,h).
Ejemplo:
Halle el valor de x para que se cumpla la igualdad.
Lo que se hace en primera instancia es saber dónde ubicar el resultado, si lo trabajamos como no
lo da el problema tendremos que ubicar el resultado cuando sea cuatro, o lo podemos simplificar
un poco pasando el cuatro a restar e igualando a cero (generalmente se utiliza igualando a cero),
en el código lo haremos igualando a cero.
Como se sabe podría haber hasta tres posibles soluciones, así que los restringiremos un poco y le
diremos que sea en el intervalo de 0 a 5.
x=(0:0.1:5);
f=(x.^3)-(9*x)+3-4;
plot(x,f)
xlabel('variable x');
ylabel('funcion f');
title('solucion de una ecuacion con una variable');
grid on;
Implementando el código anterior obtendremos:
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 19
Como se ve el resultado es muy cercano a 3, si se desea ser más exacto podemos ampliar la grafica
con la lupa de la figura.
Para guardar la figura vamos a la opción file-save as-_____ y seleccionamos .bmp para que la
grafica quede guardad en una forma donde se pueda abrir en casi cualquier computador.
15. Varias graficas
Existen dos formas principales de diversas graficas.
1. Es el comando subplot (en la misma figura genera varias graficas) con el comando
subplot(filas,columnas,posición grafica).
Ejemplo:
x=(0:0.1:5);
f=(x.^3)-(9*x)+3-4;
subplot(1,2,1)
plot(x,f)
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 20
xlabel('variable x');
ylabel('funcion f');
title('solucion de una ecuacion con una variable');
grid on;
subplot(1,2,2)
plot(f,x)
ylabel('variable x');
xlabel('funcion f');
title('solucion de una ecuacion con una variable');
grid on;
Con este código obtendremos:
Donde la posición 1 es la de la izquierda y la posición 2 es la de la derecha, también se puede
realizar de varias líneas con varias columnas, lo malo es que las graficas se pondrán todas en una
figura y se verá muy pequeño.
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 21
2. La otra forma que en la mayoría de los casos es la más utilizada es numerar los plot con
figuras, de tal manera que se genere más de una figura.
Ejemplo:
x=(0:0.1:5);
f=(x.^3)-(9*x)+3-4;
figure(1)
plot(x,f)
xlabel('variable x');
ylabel('funcion f');
title('solucion de una ecuacion con una variable');
grid on;
figure(2)
plot(f,x)
ylabel('variable x');
xlabel('funcion f');
title('solucion de una ecuacion con una variable');
grid on;
Con el código anterior se obtienen dos figuras separadas con lo cual las graficas se
obtienen más grandes.
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 23
Otras formas de graficas son:
Tipo barras bar()
Ejemplo:
x=[1 4 8 7];
bar(x)
Tipo pastel pie()
x=[1 4 8 7];
pie(x)
Como se puede ver en este tipo de grafica se hace un promedio estadístico y este es el que se
grafica.
16. Graficas 3D
El comando para las graficas 3D es plot3() las diferencias al plot normal son los 3 ejes de este. a
diferencia de las graficas 2D las cuales se graficaban puntos por parejas, en los de 3D se grafican
puntos por trió.
Se debe tener en cuenta que los ejes organizados para esta grafica son x,y,z.
Una gran diferencia es que las graficas en 3D se pueden mover en los 3 ejes de tal manera que se
puede ver desde varios ángulos, para hacer esto tenemos que seleccionar la opción rótate 3D en la
figura y con esta la podemos mover.
Ejemplo:
x=(0:0.001:8*pi);
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 24
y=cos(x);
z=sin(x);
plot3(x,y,z)
title('grafica de 3D ejemplo (JEMC)')
xlabel('angulo')
ylabel('cosx')
zlabel('senx')
Con lo cual obtendremos:
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 25
17. Llamadas (ingreso de datos por pantalla)
La forma más común de ingresar un numero por pantalla es con el comando input en el script,
este comando no dolo deja que se ingresen numero también se pueden ingresar matrices.
Matlab ofrece una leyenda para esto, de tal manera que las personas tengan una idea de que es lo
que se desea ingresar.
Generalmente este número a ingresar es asociado a una variable.
Ejemplo:
C=input(‘ingresar un el valor c’);
El código anterior es para ingresar números o matrices.
Ejemplo:
X=input(‘ingrese su nombre ‘,’s’)
EL código anterior es para ingresar letras, nótese al final la s entre ‘’, esto sirve principalmente
para decirle a matlab que lo que se está ingresando son letras y lo guarde de tal manera.
18. Llamadas por graficas
El comando ginput nos permite ingresar datos al programa desde la grafica, aunque no es una
opción muy útil ya que depende de la precisión del usuario, y opciones como el zoom por lo
general no están habilitadas.
Sin embargo es una opción a veces útil.
Ejemplo:
x=5:30;
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 26
y=x.^2-40.*x+400;
plot(x,y)
grid on
[x1,y1]=ginput
Con lo cual obtendremos lo siguiente:
Como se puede ver el seleccionador es considerablemente impreciso…
Siguiendo con el uso de este comando lo que se hace es dar clic derecho cuando ya tengamos
seleccionado el punto y después enter.
Y en el comand window obtendremos el X y Y en el cual seleccionamos.
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 27
19. Impresiones
Los comandos para imprimir (leyendas) por lo general es el fprint, y disp. Donde el más usado es
disp., debido a su sencillez.
Ejemplo:
X=[1 2 3 4]
disp(‘lo que seha’)
disp(X)
Aunque se puede poner lo de la última línea lo más utilizado para imprimir cosas de esa manera
por lo general es solo X, o el nombre de la variable utilizada y la que se quiere imprimir.
20. Find
El comando find es útil en cuanto se refiere a búsqueda de números dentro de matrices, este
comando lo que hace es buscar un numero o condición dentro de una matriz especificada.
Se debe tener en cuenta que si solo se implementa este código solo imprimirá las posiciones
donde se encuentran.
Si se desean los números como tal se deberá implementar un código extra donde llame a los
números de esas posiciones.
Ejemplo:
edades=[5 15 20 24 18]
mayores=find(edades>=18)
edadesmayores=edades(mayores)
La primera línea genera una matriz.
La segunda línea busca los números que cumplan esa condición dentro de la matriz, e imprime las
posiciones de estos.
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 28
La tercera línea lo que haces es ubicar la matriz y dentro de esta busca las posiciones que cumplen
la condición de tal manera que imprime los que cumplen la condición.
21. If
La estructura if es aquella que se implementa cuando se cumple una condición.
Se podría decir que el if se puede reemplazar por un si en un lenguaje normal.
La opción else es como decir si no, y la opción elseif es como decir o sino.
Al finalizar las opciones del if se debe poner un end, por lo general matlab asocia los end, de tal
manera que se puede ver que end cierra cada función.
Ejemplo:
a=input('ingrese numero');
if a<7
disp('a menor a 7')
else a>7
disp('a mayor a 7');
end
Como se ve en el código anterior lo que se hace en el código anterior es como una selección entre
si es mayor o menor de 7, si se desea agregar mas opciones se puede hacer mediante la opción
elseif.
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 29
22. For
El comando for es un bucle el cual solo se detiene hasta que se cumpla la condición.
Al igual que el if, al finalizar el ciclo for se debe cerrar con un end.
Ejemplo:
for k=1:5
a(k)=k^2
end
Con lo cual obtendremos:
Ejemplo:
for k=1:5
a=k^2
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 30
end
Con lo cual obtendremos:
Como se puede ver las diferencias a la hora de hacer un programa aunque sean pocas los cambios
son considerables, en el primer caso se crea una matriz mientras se cumple la condición, mientras
que en el segundo caso se reescribe el numero hasta que se cumpla la condición.
23. While
La diferencia principal es que el while se podría decir que es una mientras, es decir, mientras la
condición no se cumpla el código se ejecutara.
Ejemplo:
j=0
while j<9
j=j+3
end
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 31
24. Switch case
El switch case por lo general es el comando más utilizado para hacer menús, al momento de de
evaluarlo con respecto al código if, se puede ver que son muy similares, aunque el comando case
se usa más que todo para aquellos que son iguales.
Para este comando también se debe tener en cuenta que pueden utilizar letras como variables.
Ejemplo:
n=input('digite opcion');
switch n
case (1)
disp('hola 1')
case (2)
disp('hola 2')
otherwise
disp('error')
end
Como se puede ver algunas diferencias con respecto al comando if es el otherwise, que sería
similar al else, que en ambos casos se puede interpretar como otras opciones.
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 32
25. Celdas
Las celdas es un sistema mediante el cual se puede dividir un programa para correrlo por partes,
generalmente las celdas son utilizadas como un método para probar programas excesivamente
largos y complejos.
Las celdas también se dejan manipular y pueden ponérsele nombres a estas, generando la
posibilidad de poner pequeños programas en un solo archivo script.
El símbolo para las celdas es %%.
Sin embargo es más recomendable ponerlo desde el programa y no como un símbolo, ya que en la
mayoría de los casos al ponerlo como símbolo no funciona correctamente y no genera la división
correctamente.
Para esto debemos ubicarnos donde queremos la división o celda y debemos seleccionar el
símbolo:
Desde allí podremos crear las celdas mas fácilmente y al lado derecho de este, veremos un
símbolo similar, si lo seleccionamos veremos la lista de celdas que hemos generado para el archivo
script el cual estamos trabajando.
Para correr una celda en particular tenemos que encontrarnos posicionados en esta, nótese que al
estar posicionado en una de estas celdas esta cambia de color y se pone un poco anaranjada,
mientras las demás permanecen en blanco, después seleccionamos el icono.
El cual corre solo la celda en la cual nos encontramos.
Ejemplo:
%% inicio
clc
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 33
clear all
%% ejemplo 1
a=5+6;
b=7+8;
disp(a)
disp(b)
%% ejemplo 2
x=(0:0.5:10)
y=x.^2-(2.*x)
plot(x,y)
26. Funciones personalizadas
Matlab también ofrece crear funciones, si recuerdan al principio de la guía trabajamos funciones
trigonométricas, de igual manera se pueden crear funciones personalizadas las cuales nos
permitan simplificar nuestros cálculos, para usar estas funciones se debe tener en cuenta que
deben estar en la misma carpeta donde estamos guardando el archivo en el cual estamos
trabajando (en la misma dirección del folder).
Existen dos maneras de crear una función, usando un script normal o creando directamente la
función, lo mas convensional es crear la función directamente, para esto seleccionamos en el
script file-new-funcion .
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 34
Con lo cual nos aparecerá un código similar al siguiente:
function [ output_args ] = Untitled2( input_args )
%UNTITLED2 Summary of this function goes here
% Detailed explanation goes here
end
A continuación explicare como se debe manipular este archivo para generar la función teniendo
en cuenta la notación que esta en el código de arriba.
output_args
En español se traducirá como argumentos de salida.
EL archivo de función se pueden realizar muchos cálculos, pero en el output_args simplemente
colocamos lo que deseamos saber, y cambiamos este nombre por la variable de salida.
Untiled2
Es el nombre de la función, al momento de cambiar este el archivo al momento de guardarlo debe
quedar con el mismo nombre, ya que la mayoría de las personas no utilizan el nombre untitled
(incluyéndome, debido a que no especifica nada)
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 35
input_args
Los argumentos de entrada es lo que necesita para funcionar la función, o el numero que se desea
convertir o procesos similares.
La cantidad de argumentos de entrada pueden ser tantos como se necesiten, pero se debe tener
en cuenta que a mayor cantidad de estos, mayor complejidad de la función, tanto como para
hacerla como para manipularla.
Las otras dos líneas que se encuentran en verde es para que las personas pongan una breve reseña
de lo que hace el programa si así lo desea.
Y debajo de estas antes de la línea end es donde va el programa.
Ejemplo:
En la función sin(x)
Se podría decir que el argumento de entrada es x, la función se llama sin, pero el argumento de
salida no lo sabemos, y no nos importa cómo se llama simplemente nos importa la salida de la
función, por lo general al trabajar estas funciones matlab lo asume como Ans.
Ejemplo:
function L = Lf1( R,U,D )
%UNTITLED8 Summary of this function goes here
% Detailed explanation goes here
% forma 1 de L
I=R.*pi*U.*D;
L=1*(I.^(-1));%respuesta en m
end
El programa anterior es una forma de solucionar algunas formas de ejercicios de transferencia de
calor.
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 36
27. Caja de funciones propias
La caja de funciones propias es muy útil si es que se cuenta con un computador portátil o
personal y se trabaja en este y se desea tener resultados rápidos.
Sin embargo se debe tener en cuenta que la mayoría de funciones no se podrán cargar
con tanta facilidad, se debe tener en cuenta que estas funciones pueden llegar a reescribir
las que existen en matlab si asi se desea, lo que no es muy recomendable.
El comando para agregar funciones a matlab es mediante el comand window con el código
pathtool.
Desde la ventana mostrada se escoge la carpeta donde están las funciones y
seleccionamos add folder y luego sabe, si se desea restaurar los valores predeterminados
de matlab ya que alguien o algo cambio estos podemos seleccionar default y regresara
matlab a su configuración inicial.
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 37
28. Llamados
Los llamados son denominados asi por que eso es exactamente lo que hacen, son muy
utilizados cuando un código es muy largo lo dividen en sub códigos, se podría decir que
son la inversa de las celdas.
Para utilizar esta opción de matlab es tan sencillo como escribir el nombre en el script o
desde el comand window, y este llamara al programa con ese nombre.
29. Graficacion de ecuaciones simbólicas
La graficacion simbólica se utiliza principalmente cuando tenemos ecuaciones simbólicas y
queremos ver como se comportan, aunque es muy similar a la graficacion normal en este
tipo de graficacion se pueden obviar algunos.
El comando para este tipo de graficacion es ezplot() se debe tener en cuenta que si no se
especifica entre que intervalos matlab lo asume entre 2pi y -2pi
Ejemplo:
syms x
y=x^2-7
ezplot(y,[-2,4])
Lo que hace la primera línea es definir x como simbólica.
En la segunda línea define una ecuación y que depende de x.
Por último la tercera línea define una graficacion simbólica, lo que se agrega son unos intervalos
que se encuentran [-2,4], lo cual genera una grafica la cual tiene un comportamiento dado por la
ecuación y entre el intervalo -2,4.
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 38
30. Interpolación
Como lo más usado en lo que se refiere a interpolación es la interpolación en 2 d y linear, ya que
matlab hace esto automáticamente trabajaremos el comando de este.
Ejemplo:
x=(0:5);
y=(0:2:10);
plot(x,y)
interp1(x,y,4.5)
La primera línea define una matriz x, mientras que la segunda hace lo mismo con una matriz y,
como se puede ver la cantidad de elementos es igual en ambos, la tercera línea hace una
graficacion, y la última línea lo que hace es decir que me interpole x,y en 4.5.
Se debe tener en cuenta que lo que se hace es decirle a matlab que para un x=4.5 me halle el y.
De igual manera si se llegara a escribir:
interp1(y,x,4.5)
Lo que se hace es exactamente lo mismo solo que se le dice a matlab que me halle el x, para y=4.5.
Aunque es recomendable hacer graficas matlab no las exige para hacer esta clase de
interpolaciones.
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 39
31. Regresión
Las regresiones pueden ser de diversos tipos como lo son lineales, cuadráticas, entre otras.
Hacer una regresión manualmente es algo tedioso y complicado si además se tiene en cuenta los
errores, matlab mediante las opciones de las figuras nos permite hacer esto con mayor facilidad.
Para hacer esto después de generar la figura seleccionamos tools-basic fitting
Allí se puede escoger que regresión se cree la conveniente, si desean mostrar la ecuación, su error,
etc…
32. Animaciones
Aunque las animaciones son interesantes la mayoría de las veces son inútiles en matlab, ya que al
terminar la animación por lo general esta se desvanece, aquellas que pasan muy rápido es debido
a que hay muy pocos puntos, para hacer esto mas lento se puede agregar una mayo9r cantidad de
puntos, haciendo que el programa grafique más puntos, lo cual concluye en un grafica más lenta.
Ejemplo:
x=(0:0.1:5);
f=(x.^3)-(9*x)+3-4;
figure(1)
comet(x,f)
Ejemplo:
x=(0:0.001:8*pi);
y=cos(x);
z=sin(x);
comet3(x,y,z)
title('grafica de 3D ejemplo (JEMC)')
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 40
xlabel('angulo')
ylabel('cosx')
zlabel('senx')
Como se puede ver en la animación después de terminar esta es que los nombres de los ejes son
puestos, si se corre de nuevo sin cerrar la figura los ejes se mantienen con nombre, sin embargo si
la grafica es muy rápida no se apreciara bien.
33. Métodos numéricos
Algunos métodos numéricos ya se encuentran programados en matlab, a continuación se
mostraran algunos.
El método mas usado comúnmente es fzero, aunque para realizar este se requiere de una función
previa programa en la caja de funciones propias, es muy útil aunque su programación es un poco
extensa, por lo cual no es muy fácil, sin embargo esta el código solve, aunque sus capacidades no
son tan amplias resuelve ecuaciones fácilmente.
El método de escritura es sencillo solo se ingresa solve(‘funcion’), para hacerlo rápidamente, sin
embargo en casos donde se necesite especificar más cosas tales, como variable a despejar o que
se iguala es un poco más extenso el código que dando solve(‘funcion=numero’,variable a despejar)
Ejemplo:
Hallar la ecuación general para solucionar ecuaciones cuadráticas, sabiendo que su expresión
general es
Con lo cual obtendremos
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 41
De igual manera podemos modificar un poco esta ecuación para solucionar ecuaciones tales como
Donde n puede ser cualquier número, para esto ingresamos la ecuación
Y obtendremos
Donde se puede ver que pueden ser dos posibles respuestas a los problemas anteriores, en dado
caso que haya mas respuestas todas se irán poniendo en forma de columna.
Nota: Como se menciono anterior mente algunas de sus limitaciones son las siguientes:
Si tenemos
f=a*x^2
solve(‘f=0’,x)
Matlab generara un error ya que la función solve no puede leer f
34. Guide (interfaz grafica) Una forma un poco mas organizada de presentar programas se puede hacer mediante el comando
guide, el cual nos permite generar una interfaz grafica.
Para emplear este comando ingresaremos la función guide en el command window.
Al dar enter obtendremos el siguiente menú en el cual escogeremos que realizar
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 42
Para la mayoría de los casos es más recomendable el usar el blank gui, ya que esta opción nos
permite generar una interfaz con lo que necesitemos.
Al dar ok nos generara esta ventana
Como se puede ver esta totalmente en blanco. Si se desea se puede guardar de una vez definiendo
el nombre que se le asignara y donde se guardara.
Para este caso lo guardaremos en el escritorio
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 43
Como se puede ver se guardara con una extensión .fig, esto quiere decir que se guardara las
opciones de la figura que ingresamos.
A continuación se abrirá un .m (código) el cual nos mostrara el código base de lo que acabamos de
crear. Para esta caso en el cual no hemos ingresado nada nos saldrá un .m de 74 líneas (las cuales
pueden variar en cada versión).
Si se desea generar un campo mas grande la interfaz simplemente tienen que mover el punto
negro de la esquina inferior derecha, lo mismo se aplica para reducirla
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 44
Se debe tener en cuenta que cualquier cambio realizado se debe guardar para actualizar el código
(.m)
La opción de
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 45
Nos permite manipular la guide (variar el tamaño de los botones, seleccionar, etc… funciona como
el puntero del mouse)
Push button, edit text y static text Al seleccionar las otras opciones generaran un botón o recuadro:
Lo mas utilizados son:
Push buton: Por decirlo de alguna manera seria el ejecutable (las líneas de código que se correrán
cuando se oprima este botón)
Edit text: El texto que el usuario puede variar (o los datos de ingreso)
Static text: Texto que el usuario no puede variar, pueden ser resultados que se pueden obtener
(los cuales son recomendables hacer con static text) o títulos o señas
Axes : Las graficas que se mostraran en la interfaz.
Para abrir la .fig ingresaremos de nuevo guide en el command window y escojeremos la opción
(pestaña) open existing gui y halli se buscara .fig que deseemos abrir.
Primero haremos el típico ejemplo de la calculador agregándole funciones (tales como seno y
coseno).
Nota: Para las funciones propias que se hayan creado se debe tener en cuenta que estén en el
mismo folder en el cual se está ejecutando esta interfaz
Para esto agregaremos dos edit text
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 46
Luego agregaremos un static text para informar que será una suma.
Para esto iremos a las propiedades del static text (haciendo doble click sobre este)
Por lo general las propiedades de los botones son muy similares, asi que las explicaremos de una
vez:
Back ground color: fondo del botón
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 47
Las opciones Font son para variar la letra , ángulos, tamaño tipo etc…
Tag: Es la opción del nombre el cual afectara el .m
String: es la leyenda que aparecerá en la guide
Para este ejemplo definiremos como tamaño de letra 20 y en el string pondremos +
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 48
Ahora pondremos 6 static text.
Nota: se debe tener en cuenta que el tag se enumerara en el mismo orden que se ponen las
opciones. edit text 1, edit text 2…. Lo mismo se aplica para el resto de opciones (static text, push
buton etc)
Los primeros tres serán los que usaremos como enunciado
Los tres siguientes serán los resultados.
Cambiando los strings de los enunciados quedaría algo como esto:
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 49
Despues agregaremos tres push button
Y cambiando los tag obtendremos:
Se guarda y se obtendrá un código de 141 lineas
Ahora programaremos lo que se desea hacer.
Lo que en mi opinión es mas recomendable es llamar los edit text en el push button, sin embargo
se pueden llamar desde sus edit text
El código para llamar los valores seria: x=str2double(get(handles.editN,'String'));
Donde x es la variable a asignarle el valor y N el numero del edit text (tag)
Nota: Si se cambiaron los tag en ves de poner edit1 o edit2, se debe poner el nombre asignado.
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 50
Para este caso diremos que x1 es el numero ingresado en el edit text 1 (superior) y el x2 sera el
otro.
Para ir a la poción que se desea en el código (.m) se va a la opción go to
Ahora iremos a la opción push button 1 (calcular)
Debajo de esta escribiremos lo que se hara, y allí mismo llamaremos los valores ingresados.
Después de esto diremos que x3=x1+x2 lo cual seria la respuesta a la suma. Pero como además
deseamos saber el seno y coseno de este diremos que x4=seno(x3) y x5=coseno(x3). Con esto ya
obtendríamos los valores que deseamos pero no se mostraran en la guide. Para que se muestren
ingresaremos el código :
set(handles.textN,'String',x);
Donde N es el numero del text (texto fijo) y x la variable que se le asignara a este.
Con esto ya debería funcionar (a medias) el programa si lo guardamos.
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 51
Para correr la interfaz se puede hacer de diversas formas, las mas comunes son: correr el .m (F5 o
run) o correr el .fig
Nota: No se debe olvidar el poner ; al final, ya que de no hacerlo los valores se imprimirán en el
command window.
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 52
Ahora diremos que queremos que en vez de que nos aparezca edit text queremos un 0, de tal
manera que cambiaremos el string
Ahora progamaremos el botón limpiar. Primero definirimos una variable c=0 en el push botton 2 y
luego le diremos que imprima esta variables en los textos fijos y en las variables
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 53
Por ultimo y como una adicion programamos el botón de salir (también se puede como se hace en
cualquier programa cerrándolo con la x, pero en mi opinión da un mayor refinamiento al
programa)
Para esto se va al push button 3 y se escribe close(gcbf)
De esta manera se cerrara el programa (la interfaz no matlab).
Axes (graficos o imágenes)
Axes:
En el caso de tener dos o mas axes (graficas) definiremos en que axes queremos que se imprima la
grafica deseada mediante el siguiente código:
axes(handles.axesN);
plot();
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 54
Donde N seria el número del axes o .axesN seria el tag que se le puso a este
Si solo se tiene un axes al momento de ingresar el comando de grafica este lo asumirá
automáticamente.
Nota: se puede usar el comando axis off para quitar las guias de la grafica.
Grafica de la izquierda con axis off
Para insertar imágenes se agregara el código:
axes(handles.axes1); background = imread('una.jpg'); axis off; imshow(background);
Donde una.jpg es el nombre de la imagen una es el nombre y jpg el formato.
La línea axis off (como se menciono anteriormente) quita los bordes de las graficas, en la mayoría
de las imágenes no es necesario esto ya que no afecta directamente a la imagen.
Nota: Se debe tener en cuenta que las imágenes con fondo transparente generan problema.
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 55
Para estas imágenes las cuales se pondrán una vez iniciado el programa (es decir sin un push
butoon) las líneas de código se deben poner después de que todas los axes sean puestos.
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 56
35. Comandos Útiles
Limpiar ventana clc
Limpiar variables clear all
Correr script F5
Correr una parte del script (seleccionando parte) F9
Ayuda help
Notas en el script (al inicio y final de la frase) %.....%
Ver una función de una manera más agradable pretty()
Evaluar una función (generalmente se utiliza en programas cuyo inicio es simbolico) eval()
Tamaño de una matriz (dice cuantas filas y columnas tiene esta) size()
Poner cuadricula en figura grid on
Quitar cuadricula grid off
Mantener figura hold on
Desactivar mantener figura hold off
36. Curiosidades
Cuando en el programa (workspace) sale e+006 es lo mismo que notación científica X106
37. Errores comunes En vez de poner sin se coloca sen.
No se cierran los paréntesis bien.
Guía Matlab Básico
Jaime Marulanda
[email protected]; Página 57
Agrupación incorrecta de paréntesis.
Se coloca . en vez de , o viceversa.
Las funciones sind,cosd,tand no sirven con variables simbólicas
El nombre del programa debe contener únicamente caracteres reconocidos por matlab, no
validos.
El nombre del programa no debe contener espacios.
En las funciones el nombre de dicha función debe coincidir con la designación de la función.
Se le coloca al programa el nombre de una función definida por matlab (ejemplo ginput), se debe
tratar de que los nombres no sean similares a ninguna de las propiedades o funciones de este.
En las matrices en algunos casos matlab genera error al poner toda la operación en un solo
renglón, esto se debe principalmente a la inversa de la matriz.
En las matrices se debe tener en cuenta el orden o puede generar error.
Referencias 1. Applied Numerical analysis using matlab.
Laurene V Fausett
2. Lógica y algoritmos, programación en matlab aplicada a la ingeniería.
Hector manuel Vega
3. Matlab para ingenieros
Holly More