SlideShare a Scribd company logo
1 of 22
Download to read offline
MANUAL DE MATLAB
MATLAB, programa comercial para la realización de cálculos
matemáticos y generación de gráficos.
UVM Sur
1
Índice
¿Qué es MATLAB? 2
Ayuda 4
Caracteres especiales 5
Entorno de MATLAB 7
Solución de ecuaciones de segundo grado 8
Matemática con arreglos 9
Matrices 10
Gráficas 13
Otros comandos 16
Análisis de datos 18
Otros 19
2
¿Qué es MATLAB?
MATLAB = 'MATrix LABoratory' (LABORATORIO DE MATRICES).
Es un medio computacional técnico, que integra análisis numérico, matrices,
procesamiento de señales y gráficas, todo esto en un ambiente donde
los problemas y soluciones son expresados tal como se escriben matemáticamente.
MATLAB fue escrito originalmente en fortran, actualmente está escrito en lenguaje C.
MATLAB cuenta con paquetes de funciones especializadas llamadas toolboxes, como por
ejemplo:
Control system Toolbox
Robust Control Toolbox
Frequency Domain System Identification
Toolbox
Fuzzy Logic Toolbox
Higher Order Spectral Analisys Toolbox
Image Processing Toolbox
Model Predective Control Toolbox
Mu Analisis and Synthesis Toolbox
NAG Foundation Toolbox
Neural Network Toolbox
Nonlinear Control Design Toolbox
Optimization Toolbox
Quantitative Feedback Theory Toolbox
Signal Processing Toolbox
SIMULINK, SIMULINK Real Time
Workshop
Spline Toolbox
Statistics Toolbox
Symbolic Math Toolbox
System Identification Toolbox.
Inicio de MATLAB
MATLAB se inicia directamente desde Windows.
Al invocarse MATLAB aparecerá la pantalla de comandos, algunas sugerencias y el símbolo
>>, el cual indica la entrada de instrucciones para ser evaluadas.
>>
>> Comando o instrucción a evaluar < enter >
Para hacer la suma de dos números, escribimos :
>> 5 + 5 < enter > Presionamos la tecla entrar.
ans =
10
El resultado es desplegado y se guarda en la variable ans (answer).
NOTA: En este tutorial el símbolo >> desaparecerá, y será reemplazado por un par
de corchetes con la instrucción dentro de ellos. [ 5 + 5 ]. La instrucción aparecerá
en color verde.
Para poder ver ejecutarse la instrucción, debemos ponernos en el renglón donde está la
instrucción o marcarla con el ratón y presionar al mismo tiempo las teclas.
<Ctrl> <Enter>
3
Otra forma de evaluar una instrucción, es poner el apuntador del ratón entre los corchetes
de la instrucción y presionar el botón derecho del ratón; aparecerá un menú del cual se
tiene que escoger evaluar celda.
Hagamos la prueba con el renglón inmediato.
5 + 5 Presionar <Ctrl> <Enter>
La respuesta es desplegada en color azul y entre corchetes.
Help
El comando help proporciona una lista de todos los tópicos que MATLAB puede
proporcionar ayuda.
help
help 'comando' proporciona ayuda sobre el comando especificado.
help sqrt
Proporciona ayuda sobre la instrucción sqrt.
¿Cómo funciona MATLAB?
Cada vez que capturamos información en MATLAB y presionamos <ENTER> ésta es
desplegada inmediatamente (letras en color azul), pero si ponemos un punto y coma al
final de la instrucción MATLAB omite el desplegado de información.
Por ejemplo:
b = 50 ;
Si se quiere saber el valor de alguna variable capturada sólo se tiene que poner el nombre
de la variable y <ENTER> y MATLAB lo despliega. Estas variables residen en el espacio
de trabajo de MATLAB.
Las variables son sensibles a las mayúsculas, por lo que las siguientes variables son
diferentes:
Variable = 1
variable = 1
Las variables pueden contener hasta 19 caracteres. Éstas deben empezar con una letra,
seguida por cualquier número de letras, dígitos o guiones de subrayado.
Los caracteres de puntuación no son permitidos en las variables.
who muestra un desplegado de todas aquellas variables que se han estado utilizando.
whos Muestra las variables con información adicional.
4
Ayuda
Cómo obtener información sobre los comandos de Matlab.
Este documento es tan sólo una introducción -muy resumida- del lenguaje y del manejo
de Matlab. Antes de seguir, es conveniente indicar cómo puede obtenerse más
información sobre cualquier detalle referente a Matlab.
Desde adentro
Matlab pueden obtenerse explicaciones sobre un tema particular. Hay varios métodos.
El comando help. Para obtener información sobre una determinada función, basta
teclear desde la línea de comandos help seguido del nombre de la función.
Si se escribe sólo help, se obtiene un índice de temas.
También puede obtenerse información sobre uno de los temas de esa lista: así, help
elfun proporciona información sobre las funciones matemáticas elementales.
La ventana de ayuda. Puede llamarse tecleando helpwin o bien escogiendo del menú
Help el ítem Help Window.
La ayuda interactiva. Se obtiene escogiendo del menú Help el ítem Help Desk, o
tecleando helpdesk en la barra de comandos. Se lanza el navegador y se obtiene un
documento de inicio con un índice de temas en hipertexto donde están los manuales
y otras utilidades, como un buscador. Para leer el manual, se necesita el programa
Acrobat Reader.
Una introducción a Matlab más rigurosa, extensa y comprensiva puede encontrarse
en el epígrafe "Getting Started" del Help Desk.
5
Caracteres especiales
[ ] Son usados para formar vectores y matrices
( ) Usados para expresiones matemáticas
= Usado para hacer asignaciones
' Transpuesta de una matriz / Usado para separar 'texto'
. Punto decimal
... Al final de una línea indican que continúa 2, 3, 4, 5, 6.... En el siguiente renglón. 7, 8, 9,10]
, Para separar elementos
; Para separar filas en las matrices
; Para evitar que se despliegue la información capturada.
% Para hacer comentarios
! Para ejecutar un comando del Ms-dos !dir
El punto decimal es . (No una coma)
En Matlab, las mayúsculas y las minúsculas son distintas. Es decir, X es una variable
diferente de x.
Operaciones básicas
SUMA
C = a + b
RESTA
d = a - b
MULTIPLICACION
e = a * b
DIVISION
F = a / b
F = a  b
POTENCIA
a ^ 2
Como este último cálculo no tenía variable asignada, la respuesta se guarda en la variable
ans (answer).
Borrado de variables.
Para borrar el valor de una variable simplemente ponemos
clear a Borra la variable " a "
"CLEAR " Borra todas las variables y no se pueden recuperar.
Funciones trigonométrica
SQRT (X) Raíz cuadrada
SIN (X) COS (X) TAN( X )
SEC(X) CSC (X) COT(X)
ASIN ( X ) ACOS ( X ) ATAN ( X ) Inversa
SINH ( X ) COSH ( X ) TANH ( X ) Hiperbólica
ASINH ( X ) ACOSH ( X ) ATANH ( X ) Inversa- Hiperbólica
ATAN2 ( X,Y ) Inversa de la tangente en los cuatro cuadrantes.
LOGARITMOS Y EXPONENCIAL
Exp (X)
log (x) Logaritmo natural
LOG10 (x) Logaritmo decimal.
6
Funciones matemáticas especiales.
abs (x) Valor absoluto o magnitud de un número complejo
ceil ( 123.123123) Redondea hacia más infinito
FLOOR ( X ) Redondea hacia menos infinito
FIX ( X ) Redondea hacia cero
ROUND ( X ) Redondea hacia el entero más próximo
imag ( 30 - 5j ) Parte imaginaria de un número complejo
REAL (X) Parte real de un número complejo
ANGLE (X) Angulo de un número complejo
CONJ (X) Complejo conjugado
sign ( -5) Función signo : Devuelve el signo del argumento
(1 si es positivo, -1 si es negativo)
exp ( 1 ) Exponencial : e ( x )
REM (X, Y) Resto después de la división (x / y)
sqrt (x) Raíz cuadrada
Operaciones Lógicas
En MATLAB se pueden hacer operaciones lógicas, por ejemplo.
1 < 2 Como 1 es menor que 2, la respuesta es cierta por lo que obtenemos un 1.
1 < 1 Obtenemos un 0, porque 1 no es menor que 1.
Como se puede observar las únicas respuestas posibles con las operaciones lógicas son :
Cierto = 1 y Falso = 0.
Operadores relacionales:
> Mayor que
< Menor que
>= Mayor o igual a
<= Menor o igual a
== Igual a
~= No igual a
Existen tres operadores lógicos:
AND &
OR |
NOT ~
Variables
NaN (Not a Number)
Cuando en un lenguaje de programación como basic, pascal o C, se da una situación que
el programa no pueda manejar, como una división como 0/0 el programa se detiene,
marcando un error.
Cuando en MATLAB se presenta una situación similar el programa no se detiene, sólo da
una pequeña advertencia de que se presentó una división entre cero. Y el resultado es un
NaN, que es una variable interna no es un número).
Variables permanentes
Son aquellas con significado especial, y que no se pueden eliminar. Estas son por ejemplo
las variables ans y eps.
La variable eps es una tolerancia para determinar cosas como singularidad y rango.
La función Inf equivale a "infinito".
MATLAB también permite números complejos, indicados por las variables especiales i y j,
en todas sus operaciones y funciones.
7
Entorno Matlab
El entorno de MATLAB está organizado mediante ventanas
Command Window: es la ventana de comandos para ejecución de instrucciones
Command History: es el registro de los comandos que han sido ingresados.
Workspace: contiene la descripción de las variables usadas en cada sesión.
Inicialmente, se sugiere dejar activa únicamente la ventana de comandos, cerrando las
otras ventanas.
Para restaurarlas use la opción view de la barra de herramientas de MATLAB.
pwd
Present working directory
(directorio de trabajo actual)
cd cambiar de directorio
dir listado de los ficheros del directorio actual
Saliendo y Guardando el Espacio de Trabajo
Para salir de MATLAB se escribe quit ó exit.
Al terminar una sesión de MATLAB, las variables en el espacio de trabajo se borran. Si
deseas guardar tu espacio de trabajo escribes save. Save guarda todas las variables en un
archivo llamado matlab.mat.
Se puede utilizar save y load con otros nombres de archivos, ó para guardar solo variables
seleccionadas
8
Solución de ecuaciones de segundo
grado
MATLAB se puede resolver fácilmente ecuaciones del tipo ax² + bx + c = 0, haciéndolo
como si fuera una sola instrucción. La fórmula para resolver una ecuación de segundo
grado de este tipo es:
Si tenemos los siguientes valores:
a = 1, b = 2, c = 3
Escribimos la formula para x1:
x1, x2 = ( -b ± sqrt ( b ^ 2 - 4 * a * c )) / 2 * a
Arreglos (Arrays) o Vectores
Si se desea calcular el seno de " 0 a 1 " con incrementos de 0.25, se pueden capturar los
valores y después mandar llamar el seno de la función.
Seno de 0 a 1 con incrementos de 0.25
x = [ 0, 0.25, 0.5, 0.75, 1 ]
Con los números capturados, se obtiene el seno de la variable x escribiendo simplemente:
sin (x)
MATLAB opera en radianes, donde 2P = 360 grados.
Si queremos saber cual es el cuarto elemento del vector ponemos:
Y (4)
Modificaciones de los arreglos
Si el noveno elemento del array debió ser el número 20 en vez de 8, corregimos de la
siguiente manera:
Y (9) = 20
Otra forma de hacer arreglos, es con linspace:
Linspace (Valor inicial , Valor final , Número de elementos)
Regresando al ejemplo del coseno de 0 a 1 con incremento de 0.01 escribimos:
Note el uso de comas (#, #, #)
Z = linspace(0 , 10, 101)
Linspace describe una relación lineal de espaciado entre sus elementos
Logspace describe una relación de espaciado " logarítmica"
Logspace ( Primer exponente , Último exponente , Cantidad de valores )
9
Matemáticas con arreglos
a = 1 : 6 Define un vector de seis elementos con incrementos de 1
b = 1 : 2 : 12 Vector de seis elementos con incremento de 2
Arreglos con escalares
Se le puede sumar o multiplicar un número a todo el arreglo, por ejemplo
a + 10 Suma de un escalar con un arreglo
a * 10 Multiplicación de un escalar con un arreglo
Operaciones con arreglos
Para hacer la suma de los arreglos a y b, solamente escribimos:
a + b La respuesta se guarda en ans
Se pueden hacer operaciones como:
Z = 100 - 2 * a + b
La multiplicación de arreglos se hace con ( . * ), ya que cuando se utiliza el asterisco sin
punto indica multiplicación matricial, y además provoca un error.
Z = a .* b
La división también lleva un punto antes del signo, porque si no se utiliza el punto nos
referimos a la división matricial que es muy diferente.
Z = a ./ b
Orientación de arreglos
Si separamos cada elemento del arreglo con punto y coma tenemos un arreglo de una
sola columna:
a = [ 1; 2; 3; 4; 5; 6 ]
Es necesario usar los corchetes, porque si no los usamos obtenemos el último valor que
capturamos
Para crear una columna con 20 elementos hacemos lo siguiente:
d = ( 1 : 1 : 20 )
y trasponemos el renglón a columna, es decir buscamos la transpuesta. ( ' )
e = d'
10
Matrices
Se utiliza el punto y coma ( ; ) para definir las filas de una matriz.
Se puede determinar el tamaño de un vector con la función length. Para determinar el
tamaño de una matriz se puede utilizar la función size.
Para referirse a toda una fila o a toda una columna se emplean los dos puntos:
» v1=M(:,2)
v1 = 2
5
8
Ecuaciones Simultáneas
Con MATLAB se pueden resolver sistemas de ecuaciones simultáneas fácilmente.
Por ejemplo para resolver el siguiente sistema de ecuaciones.
2x + 0y + 5z = 100
3x + 5y + 9z = 251
1x + 5y + 7z = 301
Capturamos los valores de x, y, z ; formando una matriz.
A = [ 2 0 5; 3 5 9; 1 5 7]
Después capturamos el valor al cual están igualadas las ecuaciones en otra matriz.
b = [ 100 ; 251; 301 ]
Una forma de solucionar las ecuaciones es obteniendo el inverso de la matriz, es decir : A -
1 ( menos uno )
El asterisco indica multiplicación matricial.
c = inv (A)* b
Otra forma de resolverlo, es utilizando la división matricial.
c = A  b
Es también posible obtener la determinante de una matriz.
det ( A )
Operaciones con Matrices
Definamos las siguientes matrices ' g ' y ' h'
g = [ 1 2 3; 4 5 6; 7 8 9] h = [ 1 0 2 ; 11 2 3 ; 3 5 12 ]
La suma de las matrices g y h se muestra enseguida:
k = g + h
k = g * h Multiplicación de dos matrices.
Si se quiere operar en los elementos de la matriz, uno por uno, se pone un punto antes del
operador.
rank(k) Devuelve el rango de la matriz k.
poly polinomio característico
det determinante
trace traza
kron producto tensorial de Kronecker
eig calcula los valores propios de la matriz
*Estas operaciones especiales están definidas solamente para matrices cuadradas.*
11
Modificación de las matrices
A = [ 1 2 3; 4 5 7; 7 8 9 ]
Si nos equivocamos al capturar la matriz, por ejemplo si el número 7 del segundo renglón,
tercera columna debió ser 6 en vez de 7, tendríamos que capturar de nuevo la matriz.
Pero con MATLAB es posible modificarla de la siguiente manera :
( renglón, columna)= nuevo valor
Si tenemos la matriz identidad de 4 x 4 :
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
A = [ 1 0 0 0; 0 1 0 0; 0 0 1 0; 0 0 0 1]
Para añadir otra fila a la matriz A podemos hacer lo siguiente:
r = [10 11 12];
A = [A; r]
Pero por algún error la matriz identidad debió de haber sido de 5 x 5.
¿ Hay que capturar de nuevo la matriz ?. La respuesta es no.
A(5,5) = 1
Agregamos un 1 en el renglón 5 columna 5, y como este no existían previamente,
las columnas y renglones se completan agregando ceros.
¿Qué pasa ahora si queremos sólo una matriz identidad de 3 x 3 y tenemos
capturada una de 5 x 5?
Podemos utilizar:
Matriz ("Renglón" inicio : Fin , "Columna" inicio : Fin )
B = A ( 1 : 3, 1: 3)
A partir de la matriz A queremos tomar las columnas 1, 2 y 5, y de la matriz B queremos
tomar las columnas 1 y 3, para formar una matriz D.
D = [ A(:,[ 1 2 5]) B(:, [ 1 3])]
D ( :,1)=[] Elimina la columna número uno.
Matrices especiales
ones(2) Hace una matriz de unos, de 2 x 2.
zeros(5,4) Hace una matriz de ceros, de 5 x
4.
rand(3) Hace una matriz de 3 x 3,
eye(4) Hace una matriz identidad de 4 x 4.
Manipulación de Matrices
diag - extrae o crea una diagonal
tril - parte inferior triangular
triu - parte superior triangular
' - transposición
12
Exponentes con Arreglos
La función any(x) devuelve 1 si cualquiera de los elementos de x es diferente de cero, de lo
contrario devuelve 0.
La función all(x) devuelve 1 solamente si todos los elementos de x son diferentes de cero.
Estas funciones se usan en cláusulas if. Por ejemplo:
if all(A <.5)
. . .
end
Aplicando la función dos veces, any(any(A)), siempre reduce la matriz a una condición
escalar.
Las funciones relacionales y lógicas en MATLAB son:
any - condiciones lógicas
all - condiciones lógicas
find - halla índices de arreglos de valores lógicos
exist - verifica si existen variables
isinf - detecta infinitos
finite - verifica para los valores finitos
fix - redondeo hacia cero
(Para más información: help elmat)
13
Gráficas
Las posibilidades de Matlab son muy grandes.
Entre los muchos comandos que se pueden utilizar para modificar los gráficos, es muy útil
el empleado para cambiar la escala de los ejes. La orden es
axis([x1 x2 y1 y2])
En MATLAB se pueden crear gráficas tan simples como:
D = [ 1 2 3 5 4 7 6 8 9 8 6 3 1 3]; plot (D)
O se pueden crear gráficas tan complejas como:
cplxroot(3,10) Superficie de una raíz cubica.
Por ejemplo, para graficar la función seno se pueden crear un rango de valores
x = 0 : 0.1 : 20; x = vector de cero a veinte con incrementos de 0.1
y = sin(x); Seno del vector (x)
plot (x,y) Gráfica del seno
z = cos(x); Coseno del vector anterior
plot (x,z) Gráfica del coseno de x.
plot ( x,y,x,z) Gráfica del seno y coseno en la misma pantalla
plot (x,z,'*') Gráfica del coseno con los signos ' * '
Hace la gráfica en azul, y los signos ' + ', intercambiando los ejes.
plot ( z, x,'b+')
Puede importar y graficar datos generados fuera de MATLAB utilizando el comando load.
Como se ve es posible gráficar en Matlab con símbolos y además escoger el color, tal
como se muestra en la tabla inferior.
Símbolo Color Símbolo Estilo de línea
y amarillo . punto
m magenta o circulo
c cían x equis
r rojo + más
g verde * asterisco
b azul - menos
w blanco : dos puntos
k negro - . menos punto
- - menos menos
Es posible agregar un cuadriculado a la gráfica, para tener más precisión, con el comando.
grid
Se pueden agregar títulos a las gráficas y etiquetas en los ejes con los comandos
siguientes. Title (' Gráfica del coseno de x')
14
Para ponerle etiquetas a los ejes se puede utilizar los comandos
ylabel ('etiqueta')
xlabel('etiqueta')
axis off Desaparece los ejes.
text añade una cadena de texto en una localización específica
gtext añade texto a la gráfica utilizando el ratón
Subplot
El comando subplot nos permite desplegar en pantalla varias gráficas.
subplot(m,n,a)
'm' y 'n' son una matriz que representa las cantidades de gráficas que se van desplegar; 'a'
indicaría el lugar que ocuparía la gráfica en el subplot.
Hagamos la gráfica de los siguientes puntos. La desplegaremos en cuatro puntos
diferentes en pantalla para ver las características de subplot.
a=[ 1 ,2 ,3 9 ,8 ,7 ,4, 5, 6, 8, 7, 5];
plot (a)
Vamos hacer una matriz de 2 x 2 para graficar, cuatro posibles ventanas o gráficas. Y
queremos que la primera gráfica ocupe el lugar (1,1) de la matriz. entonces escribimos.
subplot(2,2,1) ,plot(a)
Para poder ver dos gráficas al mismo tiempo, solo tengo que escribirlo todo junto, una
expresión al lado de la otra.
CLF borra todos los objetos de la gráfica.
CLF RESET Borra todo lo que hay en la gráfica y resetea todas las propiedades de la figura.
Gráficas en tres dimensiones.
El comando plot se puede extender a 3 dimensiones con el comando plot3.
El siguiente ejemplo hace una gráfica de una espiral en tres dimensiones.
t=0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
zlabel ('etiqueta')
Se utiliza para dar etiquetas al eje z, en las gráficas en tres dimensiones.
Gráficos de malla y superficie.
z = peaks(10)
El comando peaks crea un conjunto de valores que al ser graficados, se ven de la siguiente
manera.
plot(z)
mesh(z)  grafica en 3d, las gráficas 2d
contour(z,10)  CONTOUR(Z) is a contour plot of matrix Z treating the values in Z as
heights above a plane. ??
surf(z)
Gráficas en el plano complejo
15
Ahora vamos a crear un conjunto de valores para gráficar en el plano complejo, en tres
dimensiones.
z= cplxgrid(5)
cplxmap(z,z)
cplxmap(z,z.^z)
cplxroot(2,10) Raíz cuadrada
Se pueden crear gráficos en coordenadas polares con el comando Polar (t,r,s) donde t es el
vector en ángulos en radianes, r es el radio del vector y s es la cadena de caracteres que
describe , color, símbolo del estilo del línea.
t=0:0.1:2*pi;
r = sin(2*t).*cos(2*t);
polar(t,r)
gtext( ‘ texto ’ )
Se utiliza para colocar texto en una gráfica, con la ayuda del mouse. Simplemente se
ejecuta el comando y con el mouse se selecciona la coordenada deseada y se presiona el
botón derecho del mouse, quedando fijo el texto en la pantalla.
Copiar una gráfica
Cuando se quiera realizar algún reporte formal en un procesador de palabras como en
este caso Word, es posible copiar las gráficas hechas en Matlab por medio de la orden
copy to bitmap.
El procedimiento sería:
 En Matlab, en el menú de la ventana principal de la gráfica, se escoge el menú ‘edit’ y
de este se escoge copy figure;
 Se minimiza Matlab y se pasa al procesador de palabras escogido
 Se localiza la posición en la cual estará la gráfica, y del menú edit se escoge ‘paste o
pegar’.
La gráfica aparecerá en el procesador de palabras.
Para más información, o para conocer la versatilidad de Matlab: capítulo Handle
Graphics Object del Help Desk, el manual Using MATLAB Graphics o la ayuda en
línea help graph2d.
16
Otros comandos
 What : Listado de todos los archivos *.m en el directorio actual
 dir : Lista todos los archivos en el directorio actual
 type nombre_archivo : Lista el programa, (Programas con terminación *.M).
 Which nombre_archivo : Da el path en el cual esta el archivo.
Se pueden utilizar comandos de Unix tales como Ls, pwd.
Como hacer un programa en MATLAB
Es posible realizar un programa en Matlab tal como se hace en otros lenguajes como el
basic, pascal o el lenguaje C. Es necesario utilizar un editor para escribir el código.
 Para cargar un editor, se puede hacer desde la ventana options, escogiendo editor
preference, y cargando el editor que se desee utilizar.
 Para escribir código, requerimos crear un archivo *.M. Para esto necesitamos abrir new
M.file en la ventana file.
 Ahora escribimos el código y guardamos el archivo utilizando la terminación archivo.M.
 Se puede correr el programa desde Matlab simplemente escribiendo el nombre del
archivo que fue creado.
 Es posible abrir programas con la terminación *.M desde Matlab, en el menú file, open
M.file.
A. Bucles For
Tal como en otros programas de programación en Matlab es posible crear programas
con estructura con ciclos for. El ciclo FOR permite que una instrucción, ó grupo de
instrucciones, pueda repetirse un número determinado de veces.
Es importante que para cada for exista un end.
For x = Número incial : número
final
Instrucción
End.
for x = 1 : 10
x = x + 1
end
B. Bucles while
Permite que ciertas instrucciones sean repetidas un número indefinido de veces bajo el
control de una condición lógica.
Por ejemplo, ¿ Cual es primer entero n para el cual n! es un número de 100 dígitos?
n = 1;
while prod(1:n)<1.e100
n=n+1
end
n
17
C. Enunciados IF y BREAK
Partiendo de un entero positivo n, si este es par, se divide entre dos; si es impar, se
multiplica por tres y se le suma uno. ¿Habrá algún entero para el cual el proceso nunca
termine? Aquí se ilustran los enunciados while y if, también se muestra la
función input (en este caso es una entrada del teclado), y el enunciado break, que
provee salidas abruptas de los ciclos. Veamos:
% Problema "3n+1" clásico de la teoria de números.
while 1
n = input('Entre n, negativo termina. ');
if n <= 0, break, end
while n > 1if rem(n, 2) == 0
n = n/2
else
n = 3*n+1
end
end
end
D. IF ELSE END
Se pueden utilizar estructuras como:
If expresión (verdadero)
acción 1
else if expresión (verdadero)
acción 2
. . .
else (Falso)
acción "n"
End
18
Análisis de datos
En Matlab podemos hacer análisis de datos estadísticamente o probabilísticamente. Entre
estos análisis están cálculos de medias, máximos, mínimos, desviaciones estándar, etc.
Inventemos un conjunto de datos, los cuales podremos analizar.
x =[ 9 1 ;23 34; 16 28 ;12 33 ;5 7; 9 4 ;12 34 ;5 14 ;43 6 ;3 6 ;12 9; 2 30 ;3 2; 2 4]
plot (x) La representación gráfica de los puntos anteriores.
A continuación se hace una análisis de los datos presentados, habrá dos respuestas
porque tenemos dos columnas.
media=mean(x) Obtención de la media
max(x) El máximo de los valores.
min(x) El mínimo de los todos los valores
std(x) La desviación estándar
hist(x) Histograma.
Interpolación (correlación)
Matlab tiene varios comandos que nos permiten hacer interpolaciones, uno de
los métodos es por medio de mínimos cuadrados.
Mínimos cuadrados
Se crean varios puntos.
x = [ 0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1 ];
y =[ 0.09 .12 .24 .27 .4 .45 .61 .67 .71 .63 .59];
se muestra los puntos a los cuales se les va a interpolar
plot (x,y,'*')
Polinomios
MATLAB puede sacar las raíces de un polinomio. Para capturar el polinomio de abajo,
solamente ponemos el valor de cada variable, respetando su lugar. Como no hay termino
x1, de todos modos se captura como cero.
X3 + 5x2 - 2
p = [1 5 0 -2]
Para sacar las raíces escribimos.
r=roots(p)
19
Otros
Archivos-M: Comandos y Funciones
Un archivo-M consiste de una secuencia de instrucciones normales de MATLAB, que
probablemente incluyen referencias a otros archivos-M.
Los archivos de disco que contienen instrucciones de MATLAB se llaman archivos-M. Esto
es así porque siempre tienen una extensión de ”.m”.
Ecuaciones No-lineales y Funciones de Optimización
Las funciones de funciones para ecuaciones no-lineales y optimización incluyen:
fmin - mínimo de una función de una variable
fmins - mínimo de una función multi-variable (minimización no-lineal sin restricciones)
fzero - cero de una función de una variable
constr - minimización con restricciones
fsolve - solución de ecuación no-lineal
leastsq - cuadrados mínimos no-lineales
Funciones para Ecuaciones Diferenciales
Las funciones de MATLAB para resolver problemas de valor inicial para ecuaciones
diferenciales ordinarias son:
ode23 - método Runge-Kutta de largo de paso variable que combina un método de orden
dos con uno de orden tres.
ode45 - método Runge-Kutta-Fehlberg de largo de paso variable que combina un método
de orden cuatro con uno de orden cinco.
Archivos de Comandos
Cuando un archivo de comandos es invocado, MATLAB simplemente ejecuta los comandos
encontrados en dicho archivo. Las instrucciones en un archivo de comando operan
globalmente en los datos en el espacio de trabajo. Los comandos son utilizados para hacer
análisis, resolver problemas, ó diseñar secuencias largas de comandos que se conviertan
en interactivas. Por ejemplo, suponga que el archivo fibro.m contiene los siguientes
comandos de MATLAB:
% An M-file to calculate Fibonacci numbers
f = [1 1]; i = 1;
while f(i) + f(i+1) < 1000
f(i+2) = f(i) + f(i+1);
i = i + 1;
end
plot(f)
Si escribimos fibro en una ventana de MATLAB seguido de "enter" vemos que MATLAB
calcula los primeros 16 números de Fibonacci, y luego grafica estos. Luego que la
ejecución del archivo es completada, las variables f y i permanecen en el espacio de
trabajo.
Los programas de demostraciones incluidos en MATLAB son ejemplos de como usar
comandos para hacer tareas más complicadas. Para utilizar estos escriba demos en el
"prompt" de MATLAB.
20
Archivos de Funciones
Un archivo-M que contiene la palabra function al principio de la primera línea, es
un archivo de función. En una función, a diferencia de un comando, se deben de pasar los
argumentos. Las variables definidas y manipuladas dentro de la función son locales a esta
y no operan globalmente en el espacio de trabajo. Los archivos de funciones se utilizan
para extender a MATLAB, i.e., crear nuevas funciones para MATLAB utilizando el lenguaje
propio de MATLAB.
El archivo mean.m en el disco contiene las instrucciones:
function y = mean(x)
% Mean average or mean value.
% For vectors, mean(x) returns the mean value.
% For matrices, mean(x) is a row vector
% containing the mean value of each column.
[m, n] = size(x);
if m == 1
m = n;
end
y = sum(x)/m;
(Las lineas que comienzan con "%" son interpretadas como comentarios por MATLAB). La
existencia de este archivo en el disco duro define una nueva función en MATLAB
llamada mean. Si z es un vector de los enteros desde 1 a 99, i.e.,
z = 1:99;
entonces, el valor promedio es encontrado escribiendo
mean(z)
que resultaría en
ans = 50
Veamos algunos detalles de mean.m:
La primera línea declara el nombre de la función, los argumentos de entrada, y los
argumentos de salida. Sin esta línea sería un archivo de comando.
% indica que el resto de la línea es un comentario.
Las primeras líneas documentan el archivo-M y aparecen en la pantalla cuando
escribimos help mean.
Las variables m, n, y y son locales a mean y no existen en el espacio de trabajo. (O si
existen, permanecen sin cambios.)
No es necesario asignar los enteros de 1 al 99 en la variable x. Utilizamos mean con una
variable llamada z. Este vector que contenía los enteros de 1 a 99 fue pasado ó copiado
a mean donde se convirtió en una variable local llamada x.
21
Como mejorar la Rapidez y uso de Memoria de los Programas
Para que los programas en MATLAB ejecuten más rápido, debemos vectorizar estos
siempre que sea posible. Esto es, debemos convertir los ciclos for y while a operaciones de
vectores ó de matrices. Por ejemplo, un modo de calcular la función "sin" para 1001
números entre 1 y 10 es:
i = 0;
for t = 0:.01:10
i = i + 1;
y(i) = sin(t);
end
Una versión vectorizada del mismo código es
t = 0:.01:10; y = sin(t);
En una computadora lenta, el primer ejemplo tomó 15 segundos, mientras que el segundo
tomó 0.6 segundos.
Vectores Pre-Asignados
Si no podemos vectorizar un pedazo de código, podemos hacer que los ciclos for vayan
más rápido pre-asignando cualquier vector en el cual el resultado de salida sea guardado.
Veamos un ejemplo:
y = zeros (1,100);
for i = 1:100
y(i) = det(X^i);
end
Si no pre-asignamos el vector "y", el interpretador de MATLAB irá aumentando el tamaño
de "y" por uno cada vez que se itera en el ciclo.
Manipulación de Archivos de Disco
Algunos comandos utilizados para la manipulación de archivos de disco
son dir, type, delete y cd.
Si la extención no se especifica, MATLAB utiliza .m automáticamente. El
comando diary crea un diario de tu sesión de MATLAB en un archivo de disco. Para más
información utiliza la Guía de Referencia de MATLAB ó el comando help.

More Related Content

What's hot

Traductores de lenguaje
Traductores de lenguajeTraductores de lenguaje
Traductores de lenguajezamanthag_una
 
Matematica Transformada de Laplace
Matematica Transformada de LaplaceMatematica Transformada de Laplace
Matematica Transformada de LaplaceVictor Navarro
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda HashBlanca Parra
 
Segmentación Memoria Virtual
Segmentación Memoria VirtualSegmentación Memoria Virtual
Segmentación Memoria VirtualAna Brooks
 
Formulas de transformada de laplace
Formulas de transformada de laplaceFormulas de transformada de laplace
Formulas de transformada de laplaceAlejandro Bernardo
 
Arquitectura de computadoras II-Codigo de Operaciones y Campo de Direccionami...
Arquitectura de computadoras II-Codigo de Operaciones y Campo de Direccionami...Arquitectura de computadoras II-Codigo de Operaciones y Campo de Direccionami...
Arquitectura de computadoras II-Codigo de Operaciones y Campo de Direccionami...Mari Cruz
 
Proyecto de Ecuaciones Diferenciales
Proyecto de Ecuaciones DiferencialesProyecto de Ecuaciones Diferenciales
Proyecto de Ecuaciones DiferencialesGabriel Requelme
 
2.1 metodo de intervalo
2.1 metodo de intervalo2.1 metodo de intervalo
2.1 metodo de intervalomorenito9001
 
Ecuaciones diferenciales de bernoulli
Ecuaciones diferenciales de bernoulliEcuaciones diferenciales de bernoulli
Ecuaciones diferenciales de bernoullivictormanuelmar
 
Ecuaciones diferenciales lineales
Ecuaciones diferenciales linealesEcuaciones diferenciales lineales
Ecuaciones diferenciales linealesfernandamendozadt
 
Ecuación diferencial de bernoulli
Ecuación diferencial de bernoulliEcuación diferencial de bernoulli
Ecuación diferencial de bernoulliMarco González
 
Equipo 6 programacion hibrida
Equipo 6 programacion hibridaEquipo 6 programacion hibrida
Equipo 6 programacion hibridagabo
 

What's hot (20)

Traductores de lenguaje
Traductores de lenguajeTraductores de lenguaje
Traductores de lenguaje
 
Matematica Transformada de Laplace
Matematica Transformada de LaplaceMatematica Transformada de Laplace
Matematica Transformada de Laplace
 
Decodificador
DecodificadorDecodificador
Decodificador
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda Hash
 
Segmentación Memoria Virtual
Segmentación Memoria VirtualSegmentación Memoria Virtual
Segmentación Memoria Virtual
 
Formulas de transformada de laplace
Formulas de transformada de laplaceFormulas de transformada de laplace
Formulas de transformada de laplace
 
Paginacion
PaginacionPaginacion
Paginacion
 
Manejo de memoria
Manejo de memoriaManejo de memoria
Manejo de memoria
 
Arquitectura de computadoras II-Codigo de Operaciones y Campo de Direccionami...
Arquitectura de computadoras II-Codigo de Operaciones y Campo de Direccionami...Arquitectura de computadoras II-Codigo de Operaciones y Campo de Direccionami...
Arquitectura de computadoras II-Codigo de Operaciones y Campo de Direccionami...
 
Proyecto de Ecuaciones Diferenciales
Proyecto de Ecuaciones DiferencialesProyecto de Ecuaciones Diferenciales
Proyecto de Ecuaciones Diferenciales
 
2.1 metodo de intervalo
2.1 metodo de intervalo2.1 metodo de intervalo
2.1 metodo de intervalo
 
Ecuaciones diferenciales de bernoulli
Ecuaciones diferenciales de bernoulliEcuaciones diferenciales de bernoulli
Ecuaciones diferenciales de bernoulli
 
Arreglos - Assembler
Arreglos - AssemblerArreglos - Assembler
Arreglos - Assembler
 
Ecuaciones diferenciales lineales
Ecuaciones diferenciales linealesEcuaciones diferenciales lineales
Ecuaciones diferenciales lineales
 
Ensamblador
EnsambladorEnsamblador
Ensamblador
 
Ecuación diferencial de bernoulli
Ecuación diferencial de bernoulliEcuación diferencial de bernoulli
Ecuación diferencial de bernoulli
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Equipo 6 programacion hibrida
Equipo 6 programacion hibridaEquipo 6 programacion hibrida
Equipo 6 programacion hibrida
 
Funciones en c++
Funciones en c++Funciones en c++
Funciones en c++
 

Similar to Manual matlab R2009a (20)

Diapositivas matlab
Diapositivas matlabDiapositivas matlab
Diapositivas matlab
 
Manualmv1
Manualmv1Manualmv1
Manualmv1
 
Apuntesmatlab
ApuntesmatlabApuntesmatlab
Apuntesmatlab
 
T9
T9T9
T9
 
003- Clas- Lenguajes de programación.pptx
003- Clas- Lenguajes de programación.pptx003- Clas- Lenguajes de programación.pptx
003- Clas- Lenguajes de programación.pptx
 
Apuntes de matlab
Apuntes de matlabApuntes de matlab
Apuntes de matlab
 
Matlab
MatlabMatlab
Matlab
 
Matlab
MatlabMatlab
Matlab
 
Matlab (1)
Matlab (1)Matlab (1)
Matlab (1)
 
matlab
matlabmatlab
matlab
 
Diapositivas matlab
Diapositivas matlabDiapositivas matlab
Diapositivas matlab
 
Tutorial matlab
Tutorial matlabTutorial matlab
Tutorial matlab
 
Matlabteoria 130808215706-phpapp01
Matlabteoria 130808215706-phpapp01Matlabteoria 130808215706-phpapp01
Matlabteoria 130808215706-phpapp01
 
Matlabteoria 130808215706-phpapp01
Matlabteoria 130808215706-phpapp01Matlabteoria 130808215706-phpapp01
Matlabteoria 130808215706-phpapp01
 
Matlab
MatlabMatlab
Matlab
 
Matlab scientific scilab_mathematics
Matlab scientific scilab_mathematicsMatlab scientific scilab_mathematics
Matlab scientific scilab_mathematics
 
Matlab teoria
Matlab teoriaMatlab teoria
Matlab teoria
 
resumen matlab
resumen matlabresumen matlab
resumen matlab
 
Matlab aplicacione s
Matlab aplicacione sMatlab aplicacione s
Matlab aplicacione s
 
Programacion En Mat Lab
Programacion En Mat LabProgramacion En Mat Lab
Programacion En Mat Lab
 

Recently uploaded

sistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gstsistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gstDavidRojas870673
 
1. Equipos Primarios de una Subestaciones electricas
1. Equipos Primarios de una Subestaciones electricas1. Equipos Primarios de una Subestaciones electricas
1. Equipos Primarios de una Subestaciones electricasurAN077
 
Determinación de espacios en la instalación
Determinación de espacios en la instalaciónDeterminación de espacios en la instalación
Determinación de espacios en la instalaciónQualityAdviceService
 
libro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacioneslibro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacionesRamon Bartolozzi
 
Auditoría de Sistemas de Gestión
Auditoría    de   Sistemas     de GestiónAuditoría    de   Sistemas     de Gestión
Auditoría de Sistemas de GestiónYanet Caldas
 
Análisis de Costos y Presupuestos CAPECO
Análisis de Costos y Presupuestos CAPECOAnálisis de Costos y Presupuestos CAPECO
Análisis de Costos y Presupuestos CAPECOFernando Bravo
 
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALESCAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALESJHONJAIROVENTURASAUC
 
docsity-manzaneo-y-lotizacion para habilitacopm urbana
docsity-manzaneo-y-lotizacion para habilitacopm urbanadocsity-manzaneo-y-lotizacion para habilitacopm urbana
docsity-manzaneo-y-lotizacion para habilitacopm urbanaArnolVillalobos
 
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...WeslinDarguinHernand
 
3er Informe Laboratorio Quimica General (2) (1).pdf
3er Informe Laboratorio Quimica General  (2) (1).pdf3er Informe Laboratorio Quimica General  (2) (1).pdf
3er Informe Laboratorio Quimica General (2) (1).pdfSantiagoRodriguez598818
 
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALSESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALEdwinC23
 
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdfGUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdfWILLIAMSTAYPELLOCCLL1
 
27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.pptjacnuevarisaralda22
 
Matrices Matemáticos universitario pptx
Matrices  Matemáticos universitario pptxMatrices  Matemáticos universitario pptx
Matrices Matemáticos universitario pptxNancyJulcasumaran
 
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOeldermishti
 
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)samuelsan933
 
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptTippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptNombre Apellidos
 
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...GuillermoRodriguez239462
 
TRABAJO N°2 GERENCIA DE PROYECTOS (4).pdf
TRABAJO N°2 GERENCIA DE PROYECTOS (4).pdfTRABAJO N°2 GERENCIA DE PROYECTOS (4).pdf
TRABAJO N°2 GERENCIA DE PROYECTOS (4).pdfVladimirWashingtonOl
 
ELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.pptELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.pptRobertoCastao8
 

Recently uploaded (20)

sistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gstsistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gst
 
1. Equipos Primarios de una Subestaciones electricas
1. Equipos Primarios de una Subestaciones electricas1. Equipos Primarios de una Subestaciones electricas
1. Equipos Primarios de una Subestaciones electricas
 
Determinación de espacios en la instalación
Determinación de espacios en la instalaciónDeterminación de espacios en la instalación
Determinación de espacios en la instalación
 
libro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacioneslibro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operaciones
 
Auditoría de Sistemas de Gestión
Auditoría    de   Sistemas     de GestiónAuditoría    de   Sistemas     de Gestión
Auditoría de Sistemas de Gestión
 
Análisis de Costos y Presupuestos CAPECO
Análisis de Costos y Presupuestos CAPECOAnálisis de Costos y Presupuestos CAPECO
Análisis de Costos y Presupuestos CAPECO
 
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALESCAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
 
docsity-manzaneo-y-lotizacion para habilitacopm urbana
docsity-manzaneo-y-lotizacion para habilitacopm urbanadocsity-manzaneo-y-lotizacion para habilitacopm urbana
docsity-manzaneo-y-lotizacion para habilitacopm urbana
 
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
 
3er Informe Laboratorio Quimica General (2) (1).pdf
3er Informe Laboratorio Quimica General  (2) (1).pdf3er Informe Laboratorio Quimica General  (2) (1).pdf
3er Informe Laboratorio Quimica General (2) (1).pdf
 
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALSESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
 
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdfGUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
 
27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt
 
Matrices Matemáticos universitario pptx
Matrices  Matemáticos universitario pptxMatrices  Matemáticos universitario pptx
Matrices Matemáticos universitario pptx
 
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
 
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
 
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptTippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
 
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
 
TRABAJO N°2 GERENCIA DE PROYECTOS (4).pdf
TRABAJO N°2 GERENCIA DE PROYECTOS (4).pdfTRABAJO N°2 GERENCIA DE PROYECTOS (4).pdf
TRABAJO N°2 GERENCIA DE PROYECTOS (4).pdf
 
ELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.pptELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
 

Manual matlab R2009a

  • 1. MANUAL DE MATLAB MATLAB, programa comercial para la realización de cálculos matemáticos y generación de gráficos. UVM Sur
  • 2. 1 Índice ¿Qué es MATLAB? 2 Ayuda 4 Caracteres especiales 5 Entorno de MATLAB 7 Solución de ecuaciones de segundo grado 8 Matemática con arreglos 9 Matrices 10 Gráficas 13 Otros comandos 16 Análisis de datos 18 Otros 19
  • 3. 2 ¿Qué es MATLAB? MATLAB = 'MATrix LABoratory' (LABORATORIO DE MATRICES). Es un medio computacional técnico, que integra análisis numérico, matrices, procesamiento de señales y gráficas, todo esto en un ambiente donde los problemas y soluciones son expresados tal como se escriben matemáticamente. MATLAB fue escrito originalmente en fortran, actualmente está escrito en lenguaje C. MATLAB cuenta con paquetes de funciones especializadas llamadas toolboxes, como por ejemplo: Control system Toolbox Robust Control Toolbox Frequency Domain System Identification Toolbox Fuzzy Logic Toolbox Higher Order Spectral Analisys Toolbox Image Processing Toolbox Model Predective Control Toolbox Mu Analisis and Synthesis Toolbox NAG Foundation Toolbox Neural Network Toolbox Nonlinear Control Design Toolbox Optimization Toolbox Quantitative Feedback Theory Toolbox Signal Processing Toolbox SIMULINK, SIMULINK Real Time Workshop Spline Toolbox Statistics Toolbox Symbolic Math Toolbox System Identification Toolbox. Inicio de MATLAB MATLAB se inicia directamente desde Windows. Al invocarse MATLAB aparecerá la pantalla de comandos, algunas sugerencias y el símbolo >>, el cual indica la entrada de instrucciones para ser evaluadas. >> >> Comando o instrucción a evaluar < enter > Para hacer la suma de dos números, escribimos : >> 5 + 5 < enter > Presionamos la tecla entrar. ans = 10 El resultado es desplegado y se guarda en la variable ans (answer). NOTA: En este tutorial el símbolo >> desaparecerá, y será reemplazado por un par de corchetes con la instrucción dentro de ellos. [ 5 + 5 ]. La instrucción aparecerá en color verde. Para poder ver ejecutarse la instrucción, debemos ponernos en el renglón donde está la instrucción o marcarla con el ratón y presionar al mismo tiempo las teclas. <Ctrl> <Enter>
  • 4. 3 Otra forma de evaluar una instrucción, es poner el apuntador del ratón entre los corchetes de la instrucción y presionar el botón derecho del ratón; aparecerá un menú del cual se tiene que escoger evaluar celda. Hagamos la prueba con el renglón inmediato. 5 + 5 Presionar <Ctrl> <Enter> La respuesta es desplegada en color azul y entre corchetes. Help El comando help proporciona una lista de todos los tópicos que MATLAB puede proporcionar ayuda. help help 'comando' proporciona ayuda sobre el comando especificado. help sqrt Proporciona ayuda sobre la instrucción sqrt. ¿Cómo funciona MATLAB? Cada vez que capturamos información en MATLAB y presionamos <ENTER> ésta es desplegada inmediatamente (letras en color azul), pero si ponemos un punto y coma al final de la instrucción MATLAB omite el desplegado de información. Por ejemplo: b = 50 ; Si se quiere saber el valor de alguna variable capturada sólo se tiene que poner el nombre de la variable y <ENTER> y MATLAB lo despliega. Estas variables residen en el espacio de trabajo de MATLAB. Las variables son sensibles a las mayúsculas, por lo que las siguientes variables son diferentes: Variable = 1 variable = 1 Las variables pueden contener hasta 19 caracteres. Éstas deben empezar con una letra, seguida por cualquier número de letras, dígitos o guiones de subrayado. Los caracteres de puntuación no son permitidos en las variables. who muestra un desplegado de todas aquellas variables que se han estado utilizando. whos Muestra las variables con información adicional.
  • 5. 4 Ayuda Cómo obtener información sobre los comandos de Matlab. Este documento es tan sólo una introducción -muy resumida- del lenguaje y del manejo de Matlab. Antes de seguir, es conveniente indicar cómo puede obtenerse más información sobre cualquier detalle referente a Matlab. Desde adentro Matlab pueden obtenerse explicaciones sobre un tema particular. Hay varios métodos. El comando help. Para obtener información sobre una determinada función, basta teclear desde la línea de comandos help seguido del nombre de la función. Si se escribe sólo help, se obtiene un índice de temas. También puede obtenerse información sobre uno de los temas de esa lista: así, help elfun proporciona información sobre las funciones matemáticas elementales. La ventana de ayuda. Puede llamarse tecleando helpwin o bien escogiendo del menú Help el ítem Help Window. La ayuda interactiva. Se obtiene escogiendo del menú Help el ítem Help Desk, o tecleando helpdesk en la barra de comandos. Se lanza el navegador y se obtiene un documento de inicio con un índice de temas en hipertexto donde están los manuales y otras utilidades, como un buscador. Para leer el manual, se necesita el programa Acrobat Reader. Una introducción a Matlab más rigurosa, extensa y comprensiva puede encontrarse en el epígrafe "Getting Started" del Help Desk.
  • 6. 5 Caracteres especiales [ ] Son usados para formar vectores y matrices ( ) Usados para expresiones matemáticas = Usado para hacer asignaciones ' Transpuesta de una matriz / Usado para separar 'texto' . Punto decimal ... Al final de una línea indican que continúa 2, 3, 4, 5, 6.... En el siguiente renglón. 7, 8, 9,10] , Para separar elementos ; Para separar filas en las matrices ; Para evitar que se despliegue la información capturada. % Para hacer comentarios ! Para ejecutar un comando del Ms-dos !dir El punto decimal es . (No una coma) En Matlab, las mayúsculas y las minúsculas son distintas. Es decir, X es una variable diferente de x. Operaciones básicas SUMA C = a + b RESTA d = a - b MULTIPLICACION e = a * b DIVISION F = a / b F = a b POTENCIA a ^ 2 Como este último cálculo no tenía variable asignada, la respuesta se guarda en la variable ans (answer). Borrado de variables. Para borrar el valor de una variable simplemente ponemos clear a Borra la variable " a " "CLEAR " Borra todas las variables y no se pueden recuperar. Funciones trigonométrica SQRT (X) Raíz cuadrada SIN (X) COS (X) TAN( X ) SEC(X) CSC (X) COT(X) ASIN ( X ) ACOS ( X ) ATAN ( X ) Inversa SINH ( X ) COSH ( X ) TANH ( X ) Hiperbólica ASINH ( X ) ACOSH ( X ) ATANH ( X ) Inversa- Hiperbólica ATAN2 ( X,Y ) Inversa de la tangente en los cuatro cuadrantes. LOGARITMOS Y EXPONENCIAL Exp (X) log (x) Logaritmo natural LOG10 (x) Logaritmo decimal.
  • 7. 6 Funciones matemáticas especiales. abs (x) Valor absoluto o magnitud de un número complejo ceil ( 123.123123) Redondea hacia más infinito FLOOR ( X ) Redondea hacia menos infinito FIX ( X ) Redondea hacia cero ROUND ( X ) Redondea hacia el entero más próximo imag ( 30 - 5j ) Parte imaginaria de un número complejo REAL (X) Parte real de un número complejo ANGLE (X) Angulo de un número complejo CONJ (X) Complejo conjugado sign ( -5) Función signo : Devuelve el signo del argumento (1 si es positivo, -1 si es negativo) exp ( 1 ) Exponencial : e ( x ) REM (X, Y) Resto después de la división (x / y) sqrt (x) Raíz cuadrada Operaciones Lógicas En MATLAB se pueden hacer operaciones lógicas, por ejemplo. 1 < 2 Como 1 es menor que 2, la respuesta es cierta por lo que obtenemos un 1. 1 < 1 Obtenemos un 0, porque 1 no es menor que 1. Como se puede observar las únicas respuestas posibles con las operaciones lógicas son : Cierto = 1 y Falso = 0. Operadores relacionales: > Mayor que < Menor que >= Mayor o igual a <= Menor o igual a == Igual a ~= No igual a Existen tres operadores lógicos: AND & OR | NOT ~ Variables NaN (Not a Number) Cuando en un lenguaje de programación como basic, pascal o C, se da una situación que el programa no pueda manejar, como una división como 0/0 el programa se detiene, marcando un error. Cuando en MATLAB se presenta una situación similar el programa no se detiene, sólo da una pequeña advertencia de que se presentó una división entre cero. Y el resultado es un NaN, que es una variable interna no es un número). Variables permanentes Son aquellas con significado especial, y que no se pueden eliminar. Estas son por ejemplo las variables ans y eps. La variable eps es una tolerancia para determinar cosas como singularidad y rango. La función Inf equivale a "infinito". MATLAB también permite números complejos, indicados por las variables especiales i y j, en todas sus operaciones y funciones.
  • 8. 7 Entorno Matlab El entorno de MATLAB está organizado mediante ventanas Command Window: es la ventana de comandos para ejecución de instrucciones Command History: es el registro de los comandos que han sido ingresados. Workspace: contiene la descripción de las variables usadas en cada sesión. Inicialmente, se sugiere dejar activa únicamente la ventana de comandos, cerrando las otras ventanas. Para restaurarlas use la opción view de la barra de herramientas de MATLAB. pwd Present working directory (directorio de trabajo actual) cd cambiar de directorio dir listado de los ficheros del directorio actual Saliendo y Guardando el Espacio de Trabajo Para salir de MATLAB se escribe quit ó exit. Al terminar una sesión de MATLAB, las variables en el espacio de trabajo se borran. Si deseas guardar tu espacio de trabajo escribes save. Save guarda todas las variables en un archivo llamado matlab.mat. Se puede utilizar save y load con otros nombres de archivos, ó para guardar solo variables seleccionadas
  • 9. 8 Solución de ecuaciones de segundo grado MATLAB se puede resolver fácilmente ecuaciones del tipo ax² + bx + c = 0, haciéndolo como si fuera una sola instrucción. La fórmula para resolver una ecuación de segundo grado de este tipo es: Si tenemos los siguientes valores: a = 1, b = 2, c = 3 Escribimos la formula para x1: x1, x2 = ( -b ± sqrt ( b ^ 2 - 4 * a * c )) / 2 * a Arreglos (Arrays) o Vectores Si se desea calcular el seno de " 0 a 1 " con incrementos de 0.25, se pueden capturar los valores y después mandar llamar el seno de la función. Seno de 0 a 1 con incrementos de 0.25 x = [ 0, 0.25, 0.5, 0.75, 1 ] Con los números capturados, se obtiene el seno de la variable x escribiendo simplemente: sin (x) MATLAB opera en radianes, donde 2P = 360 grados. Si queremos saber cual es el cuarto elemento del vector ponemos: Y (4) Modificaciones de los arreglos Si el noveno elemento del array debió ser el número 20 en vez de 8, corregimos de la siguiente manera: Y (9) = 20 Otra forma de hacer arreglos, es con linspace: Linspace (Valor inicial , Valor final , Número de elementos) Regresando al ejemplo del coseno de 0 a 1 con incremento de 0.01 escribimos: Note el uso de comas (#, #, #) Z = linspace(0 , 10, 101) Linspace describe una relación lineal de espaciado entre sus elementos Logspace describe una relación de espaciado " logarítmica" Logspace ( Primer exponente , Último exponente , Cantidad de valores )
  • 10. 9 Matemáticas con arreglos a = 1 : 6 Define un vector de seis elementos con incrementos de 1 b = 1 : 2 : 12 Vector de seis elementos con incremento de 2 Arreglos con escalares Se le puede sumar o multiplicar un número a todo el arreglo, por ejemplo a + 10 Suma de un escalar con un arreglo a * 10 Multiplicación de un escalar con un arreglo Operaciones con arreglos Para hacer la suma de los arreglos a y b, solamente escribimos: a + b La respuesta se guarda en ans Se pueden hacer operaciones como: Z = 100 - 2 * a + b La multiplicación de arreglos se hace con ( . * ), ya que cuando se utiliza el asterisco sin punto indica multiplicación matricial, y además provoca un error. Z = a .* b La división también lleva un punto antes del signo, porque si no se utiliza el punto nos referimos a la división matricial que es muy diferente. Z = a ./ b Orientación de arreglos Si separamos cada elemento del arreglo con punto y coma tenemos un arreglo de una sola columna: a = [ 1; 2; 3; 4; 5; 6 ] Es necesario usar los corchetes, porque si no los usamos obtenemos el último valor que capturamos Para crear una columna con 20 elementos hacemos lo siguiente: d = ( 1 : 1 : 20 ) y trasponemos el renglón a columna, es decir buscamos la transpuesta. ( ' ) e = d'
  • 11. 10 Matrices Se utiliza el punto y coma ( ; ) para definir las filas de una matriz. Se puede determinar el tamaño de un vector con la función length. Para determinar el tamaño de una matriz se puede utilizar la función size. Para referirse a toda una fila o a toda una columna se emplean los dos puntos: » v1=M(:,2) v1 = 2 5 8 Ecuaciones Simultáneas Con MATLAB se pueden resolver sistemas de ecuaciones simultáneas fácilmente. Por ejemplo para resolver el siguiente sistema de ecuaciones. 2x + 0y + 5z = 100 3x + 5y + 9z = 251 1x + 5y + 7z = 301 Capturamos los valores de x, y, z ; formando una matriz. A = [ 2 0 5; 3 5 9; 1 5 7] Después capturamos el valor al cual están igualadas las ecuaciones en otra matriz. b = [ 100 ; 251; 301 ] Una forma de solucionar las ecuaciones es obteniendo el inverso de la matriz, es decir : A - 1 ( menos uno ) El asterisco indica multiplicación matricial. c = inv (A)* b Otra forma de resolverlo, es utilizando la división matricial. c = A b Es también posible obtener la determinante de una matriz. det ( A ) Operaciones con Matrices Definamos las siguientes matrices ' g ' y ' h' g = [ 1 2 3; 4 5 6; 7 8 9] h = [ 1 0 2 ; 11 2 3 ; 3 5 12 ] La suma de las matrices g y h se muestra enseguida: k = g + h k = g * h Multiplicación de dos matrices. Si se quiere operar en los elementos de la matriz, uno por uno, se pone un punto antes del operador. rank(k) Devuelve el rango de la matriz k. poly polinomio característico det determinante trace traza kron producto tensorial de Kronecker eig calcula los valores propios de la matriz *Estas operaciones especiales están definidas solamente para matrices cuadradas.*
  • 12. 11 Modificación de las matrices A = [ 1 2 3; 4 5 7; 7 8 9 ] Si nos equivocamos al capturar la matriz, por ejemplo si el número 7 del segundo renglón, tercera columna debió ser 6 en vez de 7, tendríamos que capturar de nuevo la matriz. Pero con MATLAB es posible modificarla de la siguiente manera : ( renglón, columna)= nuevo valor Si tenemos la matriz identidad de 4 x 4 : 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 A = [ 1 0 0 0; 0 1 0 0; 0 0 1 0; 0 0 0 1] Para añadir otra fila a la matriz A podemos hacer lo siguiente: r = [10 11 12]; A = [A; r] Pero por algún error la matriz identidad debió de haber sido de 5 x 5. ¿ Hay que capturar de nuevo la matriz ?. La respuesta es no. A(5,5) = 1 Agregamos un 1 en el renglón 5 columna 5, y como este no existían previamente, las columnas y renglones se completan agregando ceros. ¿Qué pasa ahora si queremos sólo una matriz identidad de 3 x 3 y tenemos capturada una de 5 x 5? Podemos utilizar: Matriz ("Renglón" inicio : Fin , "Columna" inicio : Fin ) B = A ( 1 : 3, 1: 3) A partir de la matriz A queremos tomar las columnas 1, 2 y 5, y de la matriz B queremos tomar las columnas 1 y 3, para formar una matriz D. D = [ A(:,[ 1 2 5]) B(:, [ 1 3])] D ( :,1)=[] Elimina la columna número uno. Matrices especiales ones(2) Hace una matriz de unos, de 2 x 2. zeros(5,4) Hace una matriz de ceros, de 5 x 4. rand(3) Hace una matriz de 3 x 3, eye(4) Hace una matriz identidad de 4 x 4. Manipulación de Matrices diag - extrae o crea una diagonal tril - parte inferior triangular triu - parte superior triangular ' - transposición
  • 13. 12 Exponentes con Arreglos La función any(x) devuelve 1 si cualquiera de los elementos de x es diferente de cero, de lo contrario devuelve 0. La función all(x) devuelve 1 solamente si todos los elementos de x son diferentes de cero. Estas funciones se usan en cláusulas if. Por ejemplo: if all(A <.5) . . . end Aplicando la función dos veces, any(any(A)), siempre reduce la matriz a una condición escalar. Las funciones relacionales y lógicas en MATLAB son: any - condiciones lógicas all - condiciones lógicas find - halla índices de arreglos de valores lógicos exist - verifica si existen variables isinf - detecta infinitos finite - verifica para los valores finitos fix - redondeo hacia cero (Para más información: help elmat)
  • 14. 13 Gráficas Las posibilidades de Matlab son muy grandes. Entre los muchos comandos que se pueden utilizar para modificar los gráficos, es muy útil el empleado para cambiar la escala de los ejes. La orden es axis([x1 x2 y1 y2]) En MATLAB se pueden crear gráficas tan simples como: D = [ 1 2 3 5 4 7 6 8 9 8 6 3 1 3]; plot (D) O se pueden crear gráficas tan complejas como: cplxroot(3,10) Superficie de una raíz cubica. Por ejemplo, para graficar la función seno se pueden crear un rango de valores x = 0 : 0.1 : 20; x = vector de cero a veinte con incrementos de 0.1 y = sin(x); Seno del vector (x) plot (x,y) Gráfica del seno z = cos(x); Coseno del vector anterior plot (x,z) Gráfica del coseno de x. plot ( x,y,x,z) Gráfica del seno y coseno en la misma pantalla plot (x,z,'*') Gráfica del coseno con los signos ' * ' Hace la gráfica en azul, y los signos ' + ', intercambiando los ejes. plot ( z, x,'b+') Puede importar y graficar datos generados fuera de MATLAB utilizando el comando load. Como se ve es posible gráficar en Matlab con símbolos y además escoger el color, tal como se muestra en la tabla inferior. Símbolo Color Símbolo Estilo de línea y amarillo . punto m magenta o circulo c cían x equis r rojo + más g verde * asterisco b azul - menos w blanco : dos puntos k negro - . menos punto - - menos menos Es posible agregar un cuadriculado a la gráfica, para tener más precisión, con el comando. grid Se pueden agregar títulos a las gráficas y etiquetas en los ejes con los comandos siguientes. Title (' Gráfica del coseno de x')
  • 15. 14 Para ponerle etiquetas a los ejes se puede utilizar los comandos ylabel ('etiqueta') xlabel('etiqueta') axis off Desaparece los ejes. text añade una cadena de texto en una localización específica gtext añade texto a la gráfica utilizando el ratón Subplot El comando subplot nos permite desplegar en pantalla varias gráficas. subplot(m,n,a) 'm' y 'n' son una matriz que representa las cantidades de gráficas que se van desplegar; 'a' indicaría el lugar que ocuparía la gráfica en el subplot. Hagamos la gráfica de los siguientes puntos. La desplegaremos en cuatro puntos diferentes en pantalla para ver las características de subplot. a=[ 1 ,2 ,3 9 ,8 ,7 ,4, 5, 6, 8, 7, 5]; plot (a) Vamos hacer una matriz de 2 x 2 para graficar, cuatro posibles ventanas o gráficas. Y queremos que la primera gráfica ocupe el lugar (1,1) de la matriz. entonces escribimos. subplot(2,2,1) ,plot(a) Para poder ver dos gráficas al mismo tiempo, solo tengo que escribirlo todo junto, una expresión al lado de la otra. CLF borra todos los objetos de la gráfica. CLF RESET Borra todo lo que hay en la gráfica y resetea todas las propiedades de la figura. Gráficas en tres dimensiones. El comando plot se puede extender a 3 dimensiones con el comando plot3. El siguiente ejemplo hace una gráfica de una espiral en tres dimensiones. t=0:pi/50:10*pi; plot3(sin(t),cos(t),t) zlabel ('etiqueta') Se utiliza para dar etiquetas al eje z, en las gráficas en tres dimensiones. Gráficos de malla y superficie. z = peaks(10) El comando peaks crea un conjunto de valores que al ser graficados, se ven de la siguiente manera. plot(z) mesh(z)  grafica en 3d, las gráficas 2d contour(z,10)  CONTOUR(Z) is a contour plot of matrix Z treating the values in Z as heights above a plane. ?? surf(z) Gráficas en el plano complejo
  • 16. 15 Ahora vamos a crear un conjunto de valores para gráficar en el plano complejo, en tres dimensiones. z= cplxgrid(5) cplxmap(z,z) cplxmap(z,z.^z) cplxroot(2,10) Raíz cuadrada Se pueden crear gráficos en coordenadas polares con el comando Polar (t,r,s) donde t es el vector en ángulos en radianes, r es el radio del vector y s es la cadena de caracteres que describe , color, símbolo del estilo del línea. t=0:0.1:2*pi; r = sin(2*t).*cos(2*t); polar(t,r) gtext( ‘ texto ’ ) Se utiliza para colocar texto en una gráfica, con la ayuda del mouse. Simplemente se ejecuta el comando y con el mouse se selecciona la coordenada deseada y se presiona el botón derecho del mouse, quedando fijo el texto en la pantalla. Copiar una gráfica Cuando se quiera realizar algún reporte formal en un procesador de palabras como en este caso Word, es posible copiar las gráficas hechas en Matlab por medio de la orden copy to bitmap. El procedimiento sería:  En Matlab, en el menú de la ventana principal de la gráfica, se escoge el menú ‘edit’ y de este se escoge copy figure;  Se minimiza Matlab y se pasa al procesador de palabras escogido  Se localiza la posición en la cual estará la gráfica, y del menú edit se escoge ‘paste o pegar’. La gráfica aparecerá en el procesador de palabras. Para más información, o para conocer la versatilidad de Matlab: capítulo Handle Graphics Object del Help Desk, el manual Using MATLAB Graphics o la ayuda en línea help graph2d.
  • 17. 16 Otros comandos  What : Listado de todos los archivos *.m en el directorio actual  dir : Lista todos los archivos en el directorio actual  type nombre_archivo : Lista el programa, (Programas con terminación *.M).  Which nombre_archivo : Da el path en el cual esta el archivo. Se pueden utilizar comandos de Unix tales como Ls, pwd. Como hacer un programa en MATLAB Es posible realizar un programa en Matlab tal como se hace en otros lenguajes como el basic, pascal o el lenguaje C. Es necesario utilizar un editor para escribir el código.  Para cargar un editor, se puede hacer desde la ventana options, escogiendo editor preference, y cargando el editor que se desee utilizar.  Para escribir código, requerimos crear un archivo *.M. Para esto necesitamos abrir new M.file en la ventana file.  Ahora escribimos el código y guardamos el archivo utilizando la terminación archivo.M.  Se puede correr el programa desde Matlab simplemente escribiendo el nombre del archivo que fue creado.  Es posible abrir programas con la terminación *.M desde Matlab, en el menú file, open M.file. A. Bucles For Tal como en otros programas de programación en Matlab es posible crear programas con estructura con ciclos for. El ciclo FOR permite que una instrucción, ó grupo de instrucciones, pueda repetirse un número determinado de veces. Es importante que para cada for exista un end. For x = Número incial : número final Instrucción End. for x = 1 : 10 x = x + 1 end B. Bucles while Permite que ciertas instrucciones sean repetidas un número indefinido de veces bajo el control de una condición lógica. Por ejemplo, ¿ Cual es primer entero n para el cual n! es un número de 100 dígitos? n = 1; while prod(1:n)<1.e100 n=n+1 end n
  • 18. 17 C. Enunciados IF y BREAK Partiendo de un entero positivo n, si este es par, se divide entre dos; si es impar, se multiplica por tres y se le suma uno. ¿Habrá algún entero para el cual el proceso nunca termine? Aquí se ilustran los enunciados while y if, también se muestra la función input (en este caso es una entrada del teclado), y el enunciado break, que provee salidas abruptas de los ciclos. Veamos: % Problema "3n+1" clásico de la teoria de números. while 1 n = input('Entre n, negativo termina. '); if n <= 0, break, end while n > 1if rem(n, 2) == 0 n = n/2 else n = 3*n+1 end end end D. IF ELSE END Se pueden utilizar estructuras como: If expresión (verdadero) acción 1 else if expresión (verdadero) acción 2 . . . else (Falso) acción "n" End
  • 19. 18 Análisis de datos En Matlab podemos hacer análisis de datos estadísticamente o probabilísticamente. Entre estos análisis están cálculos de medias, máximos, mínimos, desviaciones estándar, etc. Inventemos un conjunto de datos, los cuales podremos analizar. x =[ 9 1 ;23 34; 16 28 ;12 33 ;5 7; 9 4 ;12 34 ;5 14 ;43 6 ;3 6 ;12 9; 2 30 ;3 2; 2 4] plot (x) La representación gráfica de los puntos anteriores. A continuación se hace una análisis de los datos presentados, habrá dos respuestas porque tenemos dos columnas. media=mean(x) Obtención de la media max(x) El máximo de los valores. min(x) El mínimo de los todos los valores std(x) La desviación estándar hist(x) Histograma. Interpolación (correlación) Matlab tiene varios comandos que nos permiten hacer interpolaciones, uno de los métodos es por medio de mínimos cuadrados. Mínimos cuadrados Se crean varios puntos. x = [ 0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1 ]; y =[ 0.09 .12 .24 .27 .4 .45 .61 .67 .71 .63 .59]; se muestra los puntos a los cuales se les va a interpolar plot (x,y,'*') Polinomios MATLAB puede sacar las raíces de un polinomio. Para capturar el polinomio de abajo, solamente ponemos el valor de cada variable, respetando su lugar. Como no hay termino x1, de todos modos se captura como cero. X3 + 5x2 - 2 p = [1 5 0 -2] Para sacar las raíces escribimos. r=roots(p)
  • 20. 19 Otros Archivos-M: Comandos y Funciones Un archivo-M consiste de una secuencia de instrucciones normales de MATLAB, que probablemente incluyen referencias a otros archivos-M. Los archivos de disco que contienen instrucciones de MATLAB se llaman archivos-M. Esto es así porque siempre tienen una extensión de ”.m”. Ecuaciones No-lineales y Funciones de Optimización Las funciones de funciones para ecuaciones no-lineales y optimización incluyen: fmin - mínimo de una función de una variable fmins - mínimo de una función multi-variable (minimización no-lineal sin restricciones) fzero - cero de una función de una variable constr - minimización con restricciones fsolve - solución de ecuación no-lineal leastsq - cuadrados mínimos no-lineales Funciones para Ecuaciones Diferenciales Las funciones de MATLAB para resolver problemas de valor inicial para ecuaciones diferenciales ordinarias son: ode23 - método Runge-Kutta de largo de paso variable que combina un método de orden dos con uno de orden tres. ode45 - método Runge-Kutta-Fehlberg de largo de paso variable que combina un método de orden cuatro con uno de orden cinco. Archivos de Comandos Cuando un archivo de comandos es invocado, MATLAB simplemente ejecuta los comandos encontrados en dicho archivo. Las instrucciones en un archivo de comando operan globalmente en los datos en el espacio de trabajo. Los comandos son utilizados para hacer análisis, resolver problemas, ó diseñar secuencias largas de comandos que se conviertan en interactivas. Por ejemplo, suponga que el archivo fibro.m contiene los siguientes comandos de MATLAB: % An M-file to calculate Fibonacci numbers f = [1 1]; i = 1; while f(i) + f(i+1) < 1000 f(i+2) = f(i) + f(i+1); i = i + 1; end plot(f) Si escribimos fibro en una ventana de MATLAB seguido de "enter" vemos que MATLAB calcula los primeros 16 números de Fibonacci, y luego grafica estos. Luego que la ejecución del archivo es completada, las variables f y i permanecen en el espacio de trabajo. Los programas de demostraciones incluidos en MATLAB son ejemplos de como usar comandos para hacer tareas más complicadas. Para utilizar estos escriba demos en el "prompt" de MATLAB.
  • 21. 20 Archivos de Funciones Un archivo-M que contiene la palabra function al principio de la primera línea, es un archivo de función. En una función, a diferencia de un comando, se deben de pasar los argumentos. Las variables definidas y manipuladas dentro de la función son locales a esta y no operan globalmente en el espacio de trabajo. Los archivos de funciones se utilizan para extender a MATLAB, i.e., crear nuevas funciones para MATLAB utilizando el lenguaje propio de MATLAB. El archivo mean.m en el disco contiene las instrucciones: function y = mean(x) % Mean average or mean value. % For vectors, mean(x) returns the mean value. % For matrices, mean(x) is a row vector % containing the mean value of each column. [m, n] = size(x); if m == 1 m = n; end y = sum(x)/m; (Las lineas que comienzan con "%" son interpretadas como comentarios por MATLAB). La existencia de este archivo en el disco duro define una nueva función en MATLAB llamada mean. Si z es un vector de los enteros desde 1 a 99, i.e., z = 1:99; entonces, el valor promedio es encontrado escribiendo mean(z) que resultaría en ans = 50 Veamos algunos detalles de mean.m: La primera línea declara el nombre de la función, los argumentos de entrada, y los argumentos de salida. Sin esta línea sería un archivo de comando. % indica que el resto de la línea es un comentario. Las primeras líneas documentan el archivo-M y aparecen en la pantalla cuando escribimos help mean. Las variables m, n, y y son locales a mean y no existen en el espacio de trabajo. (O si existen, permanecen sin cambios.) No es necesario asignar los enteros de 1 al 99 en la variable x. Utilizamos mean con una variable llamada z. Este vector que contenía los enteros de 1 a 99 fue pasado ó copiado a mean donde se convirtió en una variable local llamada x.
  • 22. 21 Como mejorar la Rapidez y uso de Memoria de los Programas Para que los programas en MATLAB ejecuten más rápido, debemos vectorizar estos siempre que sea posible. Esto es, debemos convertir los ciclos for y while a operaciones de vectores ó de matrices. Por ejemplo, un modo de calcular la función "sin" para 1001 números entre 1 y 10 es: i = 0; for t = 0:.01:10 i = i + 1; y(i) = sin(t); end Una versión vectorizada del mismo código es t = 0:.01:10; y = sin(t); En una computadora lenta, el primer ejemplo tomó 15 segundos, mientras que el segundo tomó 0.6 segundos. Vectores Pre-Asignados Si no podemos vectorizar un pedazo de código, podemos hacer que los ciclos for vayan más rápido pre-asignando cualquier vector en el cual el resultado de salida sea guardado. Veamos un ejemplo: y = zeros (1,100); for i = 1:100 y(i) = det(X^i); end Si no pre-asignamos el vector "y", el interpretador de MATLAB irá aumentando el tamaño de "y" por uno cada vez que se itera en el ciclo. Manipulación de Archivos de Disco Algunos comandos utilizados para la manipulación de archivos de disco son dir, type, delete y cd. Si la extención no se especifica, MATLAB utiliza .m automáticamente. El comando diary crea un diario de tu sesión de MATLAB en un archivo de disco. Para más información utiliza la Guía de Referencia de MATLAB ó el comando help.