Está en la página 1de 48

Caratula

Capítulo I
¿QUÉ ES MATLAB?
El nombre mismo de MATLAB es una abreviatura de Matrix Laboratory, laboratorio matricial.
En un nivel fundamental, se puede pensar que estos programas son sofisticadas calculadoras
con base en una computadora. Son capaces de realizar las mismas funciones que una
calculadora científica, y muchas más, incluso para la más simple de sus aplicaciones
matemáticas.
MATLAB no siempre es la mejor herramienta para usar en una tarea de programación. El
programa destaca en cálculos numéricos, especialmente en los relacionados con matrices y
gráficas, puesto que MATLAB es óptimo para matrices, si un problema se puede formular con
una solución matricial, MATLAB lo ejecuta sustancialmente más rápido que un programa
similar en un lenguaje de alto nivel.
¿CÓMO SE USA MATLAB EN LA INDUSTRIA?
• La habilidad para usar herramientas tal como MATLAB se convirtió rápidamente en
un requisito para muchos puestos de ingeniería. MATLAB es particularmente popular
para aplicaciones de ingeniería eléctrica, aunque se usa muchísimo en todos los campos
de la ingeniería y ciencias.
• Ingeniería eléctrica: aplicaciones de procesamiento de señales.
• Ingeniería biomédica: herramientas para imágenes
• Dinámica de fluidos: Los cálculos que describen velocidades de fluidos (rapideces y
direcciones), comportamiento de los gases
Resolución de Problemas en Ingeniería y Ciencias
• En las disciplinas de ingeniería, ciencias y programación de computadoras, es
importante tener enfoque consistente para resolver los problemas técnicos. El enfoque
que se plantea a continuación es útil en cursos tan distintos como química, física,
termodinámica y diseño de ingeniería.
• Plantear el problema: Si no se tiene una comprensión clara del problema es imposible
que se pueda resolver, se puede hacer un dibujo.
• Describir los valores de entrada(conocidos) y los salidas (incógnitas)
• Desarrollar un algoritmos: Identificar ecuaciones que relaciones lo valore conocidos
con la incógnitas, y realizar pruebas de escritorio
• Resolver el problema: solución en Matlab
• Probar la solución: los resultados tienen sentido, coinciden los cálculos con las
muestras, y es lo que se esperaba como resultado.

Ambiente de Matlab

En la parte central de la pantalla se encuentra la ventana de comandos (Command


Window), ésta es la ventana más importante, ya que en ella se deben teclear las
instrucciones a ejecutar, apareciendo el resultado de inmediato.
A la derecha, en la parte superior, aparece la ventana de espacio de trabajo (Workspace)
que guarda la información de las variables utilizadas en la sesión de trabajo actual.
A la derecha, en la parte inferior, se encuentra la ventana de historia de comandos
(Command History) que guarda todas las sentencias que se han ejecutado en la ventana de
comandos en las últimas sesiones de trabajo.
Editor (aquí se escribirán nuestros programas).

Empezando a trabajar
Para comenzar a trabajar con Matlab, se tecleará la orden que se desee ejecutar en la ventana
de comandos, después del símbolo del sistema >>, pulsando al final la tecla ENTER. Entonces
el programa ejecutará la orden guardando el resultado en la memoria RAM del ordenador.
Véase a continuación un ejemplo en el que se pide a Matlab que ejecute una suma sencilla:
>> 2+3
ans =
5
El resultado se guarda en la variable reservada ans, que inmediatamente aparecerá en la ventana
workspace. Ésta se crea automáticamente cuando una expresión de la ventana de comandos
no se asigna a ninguna otra variable. Guarda la información de la última respuesta que cumpla
la condición anterior.

Operaciones aritméticas
Los operadores aritméticos aplicables son los siguientes:
• Suma: +
• Resta: -
• Producto: *
• División derecha: /
• División izquierda: \
• Potenciación: ^
EJEMPLOS:

• >> 2.4*6
• 14.4000
• >> 2^3
• 8
• >> -1^4
• -1
• >> (-1)^4
• 1
• >> 3/4
• 0.7500
• >> 3\4
• 1.3333
• >> 2/3^2
• 0.2222 (la potencia tiene mayor prioridad)
• >> 2/3*2
• 1.3333
Limpieza de texto de la ventana de comandos
• Para eliminar todo el texto escrito en la ventana de comandos se utiliza el comando clc.
La ejecución de esta orden no afecta a las variables de la sesión de trabajo (la ventana
Workspace sigue manteniendo las variables)
• Para vaciar el Workspace es decir el contenido de las variables utilizamos el comando
clear.
Limpieza de texto de la ventana de comandos
• Para eliminar todo el texto escrito en la ventana de comandos se utiliza el comando clc.
La ejecución de esta orden no afecta a las variables de la sesión de trabajo (la ventana
Workspace sigue manteniendo las variables)
• Para vaciar el Workspace es decir el contenido de las variables utilizamos el comando
clear.
EJERCICIO ORDEN DE LAS OPERACIONES
• Encontrar el área de un cilindro circular recto

Si la altura del cilindro es 10 cm y el radio es de 5 cm; podemos determinar el área:

Lo que es incorrecto

Determinar
TRABAJO EN CLASE 1
Para la resolver del problema use la siguiente metodología:
• Establezca el problema
• Describa las entradas y salidas
• Desarrollo un ejemplo a mano
• Desarrolle una solución en Matlab
• Ponga a prueba la solución.

INTRODUCCIÓN A VECTORES Y MATRICES


Definición de vectores desde teclado
• Para definir un vector no hace falta establecer de antemano su tamaño (de hecho, éste
cambia de forma dinámica cuando es preciso). Simplemente, se disponen los valores
de los elementos que van a componer el vector entre corchetes, separados por espacios
o una coma, en el caso de vectores fila, o por el carácter punto y coma (;) , en el caso
de vectores columna.
Al teclear
• >>b=[1 2 3 4 5]
• o bien
• >>b=[1,2,3,4,5]
• se genera el vector fila b: 1 2 3 4 5,
que aparecerá como tal en la ventana Workspace.
• Mientras que:
• >>c=[1;2;3]
genera el vector columna c:
6
2
9
Para acceder a las componentes de un vector se utilizan unos enteros llamados índices. Los
índices correspondientes a los elementos de un vector comienzan en uno.
>>c(3)
ans=9

Generación rápida de vectores.


Operador (:)
Se van a analizar a continuación otras formas de generación de vectores que no necesitan de la
escritura explícita de todos sus elementos:
variable=[vin:vfin] Define el vector cuyos primer y último elemento son los especificados por
vin y vfin, estando los componentes intermedios separados por una unidad. Está permitido no
utilizar los corchetes o sustituirlos por paréntesis.
>>v=1:10
v= 1 2 3 4 5 6 7 8 9 10
variable=[vin:incr:vfin] Define el vector cuyos primer y último elemento son los especificados
por vin y vfin, estando los componentes intermedios separados por incr. Está permitido no
utilizar los corchetes o sustituirlos por paréntesis.
>>v=1:2:10
v= 1 3 5 7 9
Función linspace
variable=linspace (x1,x2,n) Genera un vector con n valores igualmente espaciados entre x1 y
x2.
>> v=linspace(1,10,7)
v = 1.0000 2.5000 4.0000 5.5000 7.0000 8.5000 10.0000
EJERCICIO

Despliegue de números
• Notación científica: La Notación científica expresa un valor como un numero entre 1
y 10 multiplicado por una potencia de 10. En Matlab se designan con una e entre el
numero decimal y el exponente.
>> a=6.022e23
No debe existir espacios en blanco entre el numero decimal y el exponente.
>>6.022 e23
• Formato de despliegue: Matlab usa en sus cálculos números punto flotante , de cuantos
dígitos se usen depende de su cálculo. Los enteros se imprimen sin punto decimal, los
valores con fracciones decimales se imprimen en el formato corto por defecto muestra
4 dígitos decimales.
• MATLAB permite especificar otros formatos que muestren dígitos significativos
adicionales.
format long: Despliega en un formato decimal de 14 dígitos decimales.
format bank (formato banco): se despliega dos dígitos decimales.
format short: Regresa el formato a 4 dígitos decimales.
format short e: despliega los números en notación científica con cuatro dígitos decimales.
format long e: despliega los números en notación científica con 14 dígitos decimales.
format +: los únicos caracteres que se imprimen son los signos mas y menos.
format rat: despliega números como números racionales (fracciones).
Ejemplo

COMO GUARDAR EL TRABAJO


• Como guardar variables
Para guardar el contenido de la ventana del área de trabajo se utiliza por defecto un archivo
binario llamado archivo MAT (solo se guardan las variables no la lista de comandos).
save <file name>
Para restaurar el area de trabajo escrinimos:
load <file name>
• También se puede almacenar matrices individuales o listas de matrices en el directorio
actual
save<filename><variable_list>
Archivos m-script
• MATLAB contiene un poderoso lenguaje de programación, en el que se puede crear y
guardar código en archivos llamados archivos-m.
• Home NewScript
Para guardar un archivo-m este se almacena en le directorio actual, será necesario nombrar el
archivo con un nombre válido:
• Un nombre que empiece con una letra
• Solo puede contener números, letras y el guion bajo
• No se permite espacios en blanco
• Para ejecutar un script creado en la ventana de edición puede hacerse desde del icono
Run o escribiendo el nombre del archivo en la ventana de comandos o con el comando
run
• Usar archivos m script le permite trabajar en un proyecto y guardar la lista de comandos
para uso futuro. Es buena idea insertar comentarios para describir ciertas instrucciones
para ellos usamos el signo de porcentaje %. MATLAB no ejecuta código alguna en una
línea comentada.
TRABAJO EN CLASE 2
Manipulación de matrices MATLAB
Definición de matrices desde teclado
Al igual que en vectores, para definir una matriz no hace falta establecer de antemano su
tamaño. MATLAB determinan el número de filas y de columnas en función del número de
elementos que se introducen. Las matrices se definen por filas, estando los elementos de una
misma fila separados por blancos o comas, mientras que las filas están separadas por caracteres
punto y coma (;).
• Por ejemplo, el siguiente comando define una matriz A de dimensión (3x3):
>> A=[1 2 3; 4 5 6; 7 8 9]
La respuesta del programa es:
A=
123
456
789
• Al igual que en el caso de vectores, se puede generar los elementos de las filas sin tener
que escribirlos uno a uno. Ejemplo:
>> A=[1:5;5:-1:1;linspace(0,11,5)]
A=
1.0000 2.0000 3.0000 4.0000 5.0000
5.0000 4.0000 3.0000 2.0000 1.0000
0 2.7500 5.5000 8.2500 11.0000
• MATLAB también le permite definir una matriz en términos de otra matriz que ya se
haya definido. Por ejemplo, los enunciados
Para acceder a las componentes de una matriz se utilizan unos enteros llamados índices. Estos
se enumeran de columna en columna cuando utilizamos un solo índice.
>>c(5 6 7; 1 8 3; 5 4 2)
>>c(4)
ans
6
O podemos hacerlo nombrando la fila y la columna
>>c(3,1)
ans
5
• Se pueden cambiar los valores en una matriz, o incluir valores adicionales, con un
número índice para especificar un elemento particular. Este proceso se llama
indexación en un arreglo.

Uso del operador dos puntos


• El operador dos puntos es un operador muy poderoso para definir nuevas matrices y
modificar las existentes.


• El operador dos puntos también se puede usar para extraer datos de las matrices, una
característica que es muy útil en análisis de datos.
• “todas las filas en la columna 1”.

MATRICES ESPECIALES
• Matriz de ceros: A veces es útil crear una matriz de ceros. Cuando se usa la función
zeros con un solo argumento escalar de entrada, se genera una matriz cuadrada:
Matrices mágicas
MATLAB incluye una función matricial llamada magic que genera una matriz con propiedades
inusuales. Parece no haber algún uso práctico para las matrices mágicas, excepto que son
divertidas. En una matriz mágica, la suma de todas las columnas es la misma, al igual que la
suma de todas las filas.
FUNCIONES INTERNAS DE MATLAB
La gran mayoría de los cálculos de ingeniería requieren funciones matemáticas muy
complicadas, incluidos logaritmos, funciones trigonométricas y funciones de análisis
estadístico. MATLAB tiene una extensa librería de funciones internas que le permiten
realizar dichos cálculos.
Uso Funciones Internas
• Se puede considerar que todas las funciones por lo general tienen tres componentes:
nombre, entrada (argumento) y salida.
• Los argumentos de la función pueden ser escalares o matrices.
• Nombre de la función: sqrt
• Argumento o entrada : puede ser un escalar o una matriz
• Salida: es un valor o valores calculados
• >>x=9
• >>b=sqrt(x)
• b=3
• >>x=[4,9,16]
• >>b=sqrt(x)
• b=[2,3,4]
• Nombre de la función: sqrt
• Argumento o entrada : puede ser un escalar o una matriz
• Salida: es un valor o valores calculados
• >>x=9
• >>b=sqrt(x)
• b=3
• >>x=[4,9,16]
• >>b=sqrt(x)
• b=[2,3,4]
• Algunas funciones requieren varias entradas como la función residuo rem , que
requiere el dividendo o divisor
rem(x,y)
>>rem(10,3)
>>ans=1
• La función size es una función que regresa dos salidas. Determina el numero de filas
y el numero de columnas
>>d=[1 2 3; 4 5 6; 7 8 9]
>>f=size(d)
>>f=
3 3
También se puede asignar nombres de variables a casa una de las respuestas al representar al
lado izquierdo del enunciado de asignación como una matriz
>>[x,y]=size(d)
x=3
y=3
Matemáticas discretas
MATLAB incluye funciones para factorizar números, encontrar denominadores y múltiplos
comunes, calcular factoriales y explorar números primos. Todas estas funciones requieren
escalares enteros como entrada. Las matemáticas discretas son las matemáticas de números
enteros
FUNCIONES TRIGONOMÉTRICAS

FUNCIONES DE ANÁLISIS DE DATOS


Media y mediana

Sumas y productos
NÚMEROS ALEATORIOS

Fecha y Hora
• clock devuelve un vector fila de seis elementos que representan el año, el mes, el día,
la hora, los minutos y los segundos, según el reloj interno del computador. Los cinco
primeros son valores enteros, pero la cifra correspondiente a los segundos contiene
información hasta las milésimas de segundo.
• now devuelve un número (serial date number) que contiene toda la información de la
fecha y hora actual. Se utiliza como argumento de otras funciones.

• date devuelve la fecha actual como cadena de caracteres (por ejemplo: 24-Aug-1999).
• calendar() devuelve una matriz 6x7 con el calendario del mes actual, o del mes y año
que se especifique como argumento.
GRAFICACIÓN
La graficación se la utiliza para hacer que la información se entienda mas fácilmente, se las
utiliza para una rápida verificación y determinar si una solución de computadora produce los
resultados esperados.
• Gráficas Bidimensionales
Un conjunto de pares ordenados se usa para identificar puntos sobre una grafica bidimensional
luego los puntos se conectan con líneas rectas. A la variable independiente se le da el nombre
de x y se grafica en el eje de las x y la variable dependiente se recibe el nombre de y se la grafica
en el eje y.
Gráfica básica
• Definir los vectores de valores x y valores de y.
Ejemplo:
Se puede almacenar los valores de tiempo en un vector llamado x (o cualquier nombre) y los
valores de distancia en un vector llamado y:
Para graficar estos puntos utilizamos el comando plot con argumentos x,y
>>plot (x,y)
Títulos, etiquetas y retículas
Para el titulo utilizamos el comando:
>>title(‘Mensaje deTitulo de la Ventana’)
Para etiquetar los ejes x y y usamos el comando:
>>xlabel (‘Tiempo, seg’)
>>ylabel (‘Distancia,pies’)
Para añadir una reticula (grilla o cuadricula) a la grafica:
>>grid on
Introduce texto con ayuda del ratón: el cursor cambia de forma y se espera un clic para
introducir el texto en esa posición
>>gtext('texto')
• PLOT(X,Y) grafica el vector Y versus el vector X. si X o Y es una matriz, entonces el
vector es graficado versus las filas o columnas de la matriz, lo que se alinea.
• x=[1 2 3 4];
• y=[2 4 8 16;1 2 3 4];
• plot(x,y)
• y=[1 2 3 4];
• x=[2 4 8 16;1 2 3 4];
• plot(x,y)
• PLOT(Y) grafica las columnas de Y versus su índice.
• y=[1 2 4 8]; plot(y)

Creación de gráficas múltiples


• El comando figure le permite abrir una nueva ventana de figura. Cada vez que se solicite
una grafica se desplegara una nueva ventana.
• El comando hold congela la grafica de modo que se puede recubrir una grafica
adicional.

Línea, color y estilo de marca


x = -pi:pi/10:pi;
y = tan(sin(x)) - sin(tan(x));
plot(x,y,'--rs','LineWidth',2,...
'MarkerEdgeColor','k',...
'MarkerFaceColor','g',...
'MarkerSize',10)

Escalamiento de ejes y anotaciones graficas


SUBGRAFICAS
• El comando subplot le permite subdividir la ventana de graficación en una retícula de
m filas y n columnas.
subplot(m,n,p)
p identifica la porción de la ventana donde se dibujara la siguiente grafica.
>>subplot(2,2,1)

OTROS TIPOS DE GRAFICAS BIDIMENSIONALES


Graficas Polares: Permite graficas en coordenadas polares. Un punto de la curva en polares
polar(theta,r)
theta ángulo en radianes; ángulo que forma el vector de posición del punto con el eje
horizontal, medido en sentido positivo
r  distancia radial distancia al origen
Gráficas logarítmicas
Para la mayoría de las gráficas que se generan, los ejes x y y se dividen en intervalos igualmente
espaciados; dichas gráficas se llaman gráficas lineales o rectangulares. Sin embargo, en
ocasiones es posible que se quiera usar una escala logarítmica en uno o ambos ejes. Las gráficas
logarítmicas (a la base 10) también son útiles para representar datos que varían
exponencialmente.
El logaritmo de un número negativo o de cero no existen. Si sus datos
incluyen estos valores, MATLAB emitirá un mensaje de advertencia y no se graficarán los
puntos en cuestión. Sin embargo, generará una gráfica con base en los puntos restantes.
Ejemplo: Gráfica de y = 5x2 con los cuatro enfoques de escalamiento,

Graficas de Función
La función fplot le permite graficar una función sin definir arreglos de valores x y y
correspondientes.
MATLAB calcula automáticamente el espaciamiento de los valores x para crear una curva
suave.
Note que el primer argumento en la función fplot es una cadena que contiene la función y el
segundo argumento es un arreglo
GRAFICAS TRIDIMENSIONALES
• Matlab ofrece una serie de comandos para graficas tridimensionales:
Grafica Lineal Tridimensional
La función plot3 acepta datos en 3 dimensiones es decir se debe proporcionar vectores en x, y
,z. Estos datos se grafican en una espacio de tres dimensiones y se conectan con líneas rectas.

2.
• >> a = 10; b = 1.0; c = 0.3;
• >> t = linspace(0, 2*pi, 200);
• >> x = b*cos(t);
• >> y = b*sin(t);
• >> z = c*cos(a*t);
• >> plot3(x, y, z, 'k')
• >>comet3(x, y,z)
Superficies tridimensionales
Matlab contiene un conjunto de funciones gráficas 3D para crear superficies, contornos, y
variaciones, así como especializaciones de esas formas básicas.
Una superficie se define por la expresión Matlab z=f(x,y) donde x e y son las coordenadas en
el plano xy y z es la altura resultante.

Los puntos de la rejilla se definen mediante dos matrices. La matriz X guarda las abscisas de
los puntos y la matriz Y las ordendas de dichos puntos. La función meshgrid de MATLAB crea
la matriz X y la matriz Y.

Se calculan los valores de z=f(x,y) para cada unos de los puntos de la rejilla.
• Surf – dibuja una superficie compuesta de parches de colores que dependen de la
magnitud z
• Mesh – dibuja parches de superficies blancas que se definen por su contorno. Los
colores de las líneas de los parches se determinan por la magnitud de z.
Ejemplo
• z=x2-y2 para el dominio -2≤x≤3, -2≤y≤3
• x=-2:3;
• >> y=-2:3;
• >> [X,Y]=meshgrid(x,y);
• Z=X.^2-Y.^2;
• mesh(X,Y,Z);
• xlabel('X')
• ylabel('Y')
• zlabel('Z')
Entradas y salidas controladas por el usuario
• Matlab ofrece funciones internas para permitir el usuario ingrese valores.
• La función input: despliega una cadena de texto en la ventana de comando y luego que
el usuario proporcione la entrada solicitada.
z=input (‘Ingrese una valor’);
Para ingresar una matriz usamos los corchetes [ ]
Para ingresar una cadena usamos ‘ ‘ O ESPECIFICAR QUE ES UNA CADENA
Opciones de Salida
• Matlab ofrece otros dos enfoques para desplegar los resultados.
Función de despliegue (display)
La función display o disp se usa para desplegar los contenidos de una matriz sin imprimir su
nombre.
disp(x)
disp('los valores de la matriz son:');
Salida formateada
• La función fprintf (función impresa formateada): se utiliza para especificar el formato
a usar al desplegar los valores, y saltar de linea.
• Formato
fprintf(format-string, var,….)
Ejemplo:
X=5;
fprintf(‘Hay %f elementos en el vector’,x);
% es una marcador de posición que se ubica en donde se va a insertar el valor de la variable.
f se utiliza para le formateo el cual le indica a Matlab desplegar el valor de la variable en un
formato de punto fijo por defecto. ( el formato por defecto es 6 lugares después del punto
decimal)
Tipos de formatos
Comandos de formato especial

CAPITULO II
FUNCIONES LÓGICAS Y ESTRUCTURAS DE CONTROL
Estructuras
• Secuenciales: Son listas de comandos que se ejecutan una después de otra.
• Selección: Ejecutan comandos si algún criterio es verdadero o falso. Permitiendo elegir
dichas rutas con base a una condición lógica, las cuales contienen operadores
relacionales o lógicos.
• Repetición: hace que un grupo de enunciados se ejecute carias veces. El numero de
repeticiones depende de un contador o de la evaluación de una condición lógica.
Operadores Relacionales y lógicos

Estructuras de Selección
• If Simple: Si la comparación es verdadera se ejecutan los enunciados entre la estructura
if y el enunciado end. Si la comparación es falsa el programa salta inmediatamente al
enunciado que le sigue al end.
If /Else
• Else le permite ejecutar un conjunto de enunciados si la comparación es verdadera y
conjunto diferente de enunciados si la comparación es falsa.
ElseIf
• Cuando se anidan varios niveles de enunciados if/else suele ser difícil determinar
cuales expresiones lógicas con verdaderas y cuales son falsas. ElseIf le permite
comprobar múltiples criterios mientras se mantiene el código fácil de leer.

• Find
Busca en una matriz e identifica cuales elementos en dicha matriz satisfacen un criterio dado.
Encuentra los números índices de los elementos que satisfacen el criterio.
Supóngase que se tiene una matriz en la que consta las alturas de solicitantes de la Academia
Naval los cuales deben cumplir con al menos 66 pulgadas.

EJEMPLO
• Supóngase que tenemos otra matriz en la que se almacena en la columna 1la estatura
en la columna 2 los años, se desea además de lo anterior también conocer los datos en
que los solicitantes tienen 18 años de edad o mas y menos de 35 años.

Switch y Case
• Esta estructura se usa con frecuencia cuando existe unas serie de opciones de
programación para una variable dada dependiendo su valor.. Esta le permite elegir
entre múltiples opciones

Ejemplo: Determinar la tarifa aérea de 3 diferentes ciudades.


ciudad=input(‘Ingrese la ciudad’,’s’);
switch ciudad
case ‘Quito’
Disp(‘$85’);
case ‘Guayaquil’
Disp(‘$95’);
case ‘Cuenca’
Disp(‘90’);
otherwise
Disp (‘No existe’);
End

Menú
• La función menú se usa con frecuencia en conjunto con una estructura switch/case.
Esta función hace que aparezca un recuadro de menú en la pantalla, con una serie
de botones definidos por el programador

ESTRUCTURAS DE REPETICIÓN: BUCLES


Los bucles (loops) se usan cuando necesita repetir un conjunto de instrucciones muchas
veces.
• El bucle for
• El bucle while
Bucles for
La estructura del bucle for es simple. La primera línea identifica el bucle y define un índice,
que es un número que cambia en cada paso a través del bucle. Después de la línea de
identificación viene el grupo de comandos que se quiere ejecutar.
El bucle se ejecuta una vez para cada elemento de la matriz índice identificada en la primera
línea.

Características
• El bucle comienza con un enunciado for y termina con la palabra end.
• La primera línea en el bucle define el número de veces que se repetirán los bucles
mediante un número índice.
• El índice de un bucle for debe ser una variable. (El índice es el número que cambia
cada vez a lo largo del bucle.)
• Cualquiera de las técnicas aprendidas para definir una matriz se puede usar para
definir la matriz índice. Un enfoque común es usar el operador dos puntos, como
en

Bucles while
• Los bucles while son similares a los bucles for. La gran diferencia es la forma en que
MATLAB decide cuántas veces repetir el bucle. Los bucles while continúan hasta
que se satisface algún criterio.

Creación de interfaces de usuario con MATLAB


• MATLAB dispone de una utilidad para el desarrollo interactivo de interfaces de
usuario (GUI) llamado GUIDE
• Para ello se escribe el comando guide en la ventana del workspace.

• Una GUI debe ser consistente y fácilmente entendida por el usuario


• • Proporciona al usuario con la habilidad de usar un programa sin tener que
preocuparse sobre los comandos para ejecutar un programa
• •Los componentes habituales de una GUI son
– Pushbuttons
– Sliders
– List boxes
– Menus, ..etc

• Push Button
Este comando se utiliza para ejecutar o lanzar una orden cuando se pulsa
• Grupos de botones (Button Group)
Los botones de selección permiten al usuario seleccionar entre las diferentes opciones que
se presentan en la aplicación. En el caso en el que se encuentren englobadas en un grupo de
botones, uno de ellos siempre permanecerá activado.
• Cajas de selección (pop up menú)
Este tipo de control permite seleccionar una opción de entre varias mostradas en una lista.
Eligiendo una de ellas, se ejecuta la opción que se haya seleccionado. La ventaja de este
control es el diseño compacto con el que se muestra por pantalla, pudiéndose colocar en
espacios reducidos al poderse desplegar automáticamente en el momento en que se pulsa,
quedando minimizado cuando sobre él no se está pulsando.
• Cajas de texto (Static Text)
Son controles en los que no se permiten realizar operaciones con el ratón. Están diseñadas
para representar en pantalla la información especificada por el programador, sin que se
puedan modificar por el usuario.
• Cajas de texto editables (Edit Text)
Las cajas de texto editables se utilizan para poder introducir y modificar cadenas de
caracteres. La llamada a la opción de ejecución Callback será efectiva cuando se pulse el
botón asociado a este control. La flexibilidad a la hora de poder manipular datos es factible
gracias a este control,. Se ha utilizado este comando para introducir números.
• Paneles (Panel)
Un panel no es un control propiamente dicho. Su función es la de englobar una serie de
componentes para una mejor estructuración por pantalla.
• Ventanas (Axes)
Una ventana es un objeto que permite la representación de gráficas o imágenes
• Todos los controles comentados se denominan objetos. Estos presentan unas
propiedades que son editables por el programador. En función de las necesidades,
del estado en que se encuentre el programa y de la estructuración del mismo, podrán
modificarse durante el desarrollo de la aplicación. Muchas de estas propiedades son
comunes a la mayoría de los controles, aunque cada uno de ellos puede presentar
propiedades particulares.
• La herramienta que presenta MATLAB para modificar las propiedades del objeto
deseado es el inspector de propiedades. En él se representan todas las variables
modificables del objeto.
Modificación de propiedades con Property Inspector
Propiedades
• Tag: es la más importante ya que identifica cada control en el código, por tanto
debemos de asignar un nombre significativo a dicho control.
• String: que es el título del botón
• FontSize: cambia el tamaño de la fuente de texto
• FontWeight: cambia el estilo de la fuente
• Background Color : Cambia el color del fondo del control
• CallBack: La propiedad más importante del control, ya que le dice al control que
hacer cuando este se active.
• Enable: Activa o desactiva un control
• El editor permite construir interfaces arrastrando y soltando componentes en el área
de diseño de la GUI.
• Todas las GUIs creadas con guide empiezan con una función inicial (callback) que se
invoca cuando se invoca la interfaz.
• La operación automática de guardado (save) genera un fichero .m y un fichero .fig
• El fichero .fig contiene el diseño del GUI en binario y el fichero .m contiene el código
que controla el GUI
Editor de código

Al hacer click derecho en el elemento ubicado en el área de diseño, una de las opciones más
importantes es View Callbacks, la cual, al ejecutarla, abre el archivo .m asociado a nuestro
diseño y nos posiciona en la parte del programa que corresponde a la subrutina que se ejecutará
cuando se realice una determinada acción sobre el elemento que estamos editando.
Por ejemplo, al ejecutar View Callbacks>>Callbacks en el Push Button, nos ubicaremos en la
parte del programa:

SENTENCIAS GET Y SET


• La asignación u obtención de valores de los componentes se realiza mediante las
sentencias get y set.
• El valor de una propiedad de un control determinado se obtiene mediante la función
get:

get(handles.nombre_control,'propiedad')

• La función set cambia el valor de una propiedad de un determinado control:

set(handles.nombre_control,'propiedad',nuevo_valor).
• Todos los valores de las propiedades de los elementos (color, valor, posición, string…)
y los valores de las variables transitorias del programa se almacenan en una estructura,
los cuales son accedidos mediante un único y mismo identificador para todos éstos.

• handles, es nuestro identificador a los datos de la aplicación. :


handles.output = hObject;
CAPÍTULO III
Funciones definidas por el usuario
 Una función es una pieza de código de computación que acepta un argumento de
entrada del usuario y produce salida al programa.
 El lenguaje de programación MATLAB se construye alrededor de funciones.
 Es posible que se quiera definir sus propias funciones, aquellas que usted usa más
comúnmente en su programación. Las funciones definidas por el usuario se almacenan
como archivos-m y MATLAB puede acceder a ellas si están almacenadas en el directorio
actual
Sintaxis
Consiste en un nombre, una entrada proporcionada por el usuario y una salida calculada.
Por ejemplo, la función se llama cos(x): Toma la entrada del usuario dentro de paréntesis (en
este caso, x), y calcula un resultado
El usuario no necesita ver los cálculos realizados, sino que sólo acepta la respuesta. Las
funciones definidas por el usuario funcionan de la misma forma:
mi_funcion(x)
Las funciones definidas por el usuario se crean en archivos-m.
Cada una debe comenzar con una línea de definición de función que contenga
 la palabra function,
 una variable que defina la salida de función,
 un nombre de función, y
 una variable que se use para el argumento de entrada.
function salida=mi_funcion(x)
Por ejemplo:
function resultado=suma(x)
La siguiente función, que deberemos guardar en un fichero llamado cuadrado.m, calcular el
cuadrado de un número:
function c = cuadrado(x)
c = x * x;

Cuando queramos calcular el cuadrado de un número, no tenemos más que escribir


cuadrado(11)

 La misma nomenclatura de MATLAB para nombrar variables se aplican para nombrar


funciones definidas por el usuario.
 El nombre de la función debe comenzar con una letra.
 Puede formarse con letras, números y el guión bajo.
 No se pueden usar nombres reservados.
 Permite cualquier longitud, aunque los nombres largos no son una buena práctica en
programación.
Calcula el valor de un polinomio particular:

Antes de poder usar esta función, se debe guardar en el directorio actual. El nombre de
archivo debe ser el mismo que el nombre de función con la finalidad de que MATLAB lo
encuentre.
 Una vez guardado el archivo-m, la función está disponible para usar desde la ventana
de comando, desde un archivo-m script o desde otra función. Considere la función
poly recién creada. Si en la ventana de comando se escribe
EJERCICIO: Conversión entre grados y radianes
 Los ingenieros usualmente miden los ángulos en grados, aunque la mayoría de los
programas de cómputo y muchas calculadoras requieren que la entrada a las funciones
trigonométricas esté en radianes.
 Escriba y pruebe una función GR que cambia grados a radianes y otra función RG que
cambia radianes a grados. Sus funciones deben tener capacidad de aceptar entrada
escalar y matricial.
EJERCICIO: Tamaño de grano ASTM
 Tal vez no esté acostumbrado a pensar que los metales son cristales, pero lo son. Si
observa un trozo pulido de metal bajo un microscopio, la estructura se vuelve clara,
cada cristal (llamado grano en metalurgia) es de un tamaño y forma diferentes. El
tamaño de los granos afecta la fortaleza del metal: cuanto más finos sean los granos,
más fuerte será el metal.
 Puesto que es difícil determinar un tamaño de grano “promedio”, la ASTM
(anteriormente conocida como la American Society for Testing and Materials,)
desarrolló una técnica estándar. Una muestra de metal se examina bajo un microscopio
a una amplificación de 100, y se cuenta el número de granos en una pulgada cuadrada.
La ecuación relevante es

 donde n es el tamaño de grano ASTM y N es el número de granos por pulgada cuadrada


a 100X. La ecuación se puede resolver para n, lo que produce

TRABAJO EN CLASE FUNCIONES DEFINIDAS


Funciones con entradas y salidas múltiples
 Tal como las funciones MATLAB predefinidas pueden requerir múltiples entradas y
pueden regresar múltiples salidas, se pueden escribir funciones más complicadas
definidas por el usuario.

 De manera similar, se podría escribir una función definida por el usuario para
multiplicar dos vectores:

 También puede crear funciones que regresen más de una variable de salida.
 Calcular la aceleración, velocidad y la distancia en función del tiempo de un móvil.

 Si llama la función sin especificar las tres salidas, sólo se regresará la primera salida:

 Se debe especificar todas las salidas

Ejercicio: (1 entrada, 1 salida)


 Calcula el promedio de los elementos de un vector, utilizando estructuras de
repetición.

Ejercicio: (1 sola salida, varias entradas)


 Sumar dos vectores de la misma dimensión usando estructuras de repetición
(varias salidas, varias entradas)

Sumar dos vectores y mostrar los vectores ingresados y el vector resultante

SOLUCIONES DE SISTEMAS DE ECUACIONES LINEALES


 Considere el siguiente sistema de tres ecuaciones con tres incógnitas:

 Este sistema de ecuaciones se puede rescribir con las siguientes matrices:

 Al usar multiplicación matricial se puede escribir entonces el sistema de ecuaciones:


AX=B
Solución con el uso de la matriz inversa

3x3 3x1
A B
funciona porque las dimensiones coinciden

De manera alternativa se puede usar:

Aunque esta técnica corresponde bien con el enfoque que se considera en las clases de álgebra
cuando se introducen las matrices, no es muy eficiente y puede resultar en excesivos errores de
redondeo. En general, se debe evitar usar la matriz inversa para resolver sistemas lineales de
ecuaciones.
Solución con división izquierda de matriz
Una mejor forma de resolver un sistema de ecuaciones lineales es usar una técnica llamada
eliminación gaussiana.
La técnica de eliminación gaussiana es un enfoque organizado para eliminar variables hasta
que sólo existe una incógnita y luego sustituir de nuevo hasta que se determinan todas las
incógnitas. En MATLAB se puede usar división izquierda para resolver el problema por
eliminación gaussiana.
X=A\B
La función rref de MATLAB
 Esta función nos puede ser útil para resolver sistemas de ecuaciones.
 La matriz ampliada Ab del sistema de tres ecuaciones con tres incógnitas del apartado
anterior es

Pasamos la matriz Ab a la función rref de MATLAB y obtenemos la matriz ampliada R del


sistema equivalente de ecuaciones

Función sub
Utilizamos esta función si en una expresión simbólica queremos sustituir una variable por otra
o por una constante para calcular su valor en un punto.
subs(f, antiguas, nuevas) Sustituye las variables antiguas por las nuevas. Si hay más de una
variable las escribiremos entre llaves y separada por comas.
Instrucciones diff e int derivar e integrar

RESOLUCIÓN DE EXPRESIONES Y ECUACIONES


La función solve Cuando se usa con una expresión, la función solve iguala la expresión a cero
y resuelve para las raíces.
Si ya se definió como una variable simbólica anteriormente:
 e=sym('x-3')
 solve(e)
 ans =
3
O directamente dentro de la función Solve
 solve('x^2-9')
 ans =
3
-3
 solve('5*x^2+6*x-7')
 ans =
(2*11^(1/2))/5 - 3/5
- (2*11^(1/2))/5 - 3/5
 double(ans)
 ans =
0.7266
-1.9266
Resolución de sistemas de ecuaciones
La función solve no sólo puede resolver ecuaciones o expresiones sencillas para algunas de las
variables incluidas, también puede resolver sistemas de ecuaciones

También podría gustarte