Sie sind auf Seite 1von 8

Departamento de Ingeniería Civil y Ambiental

Facultad de Ingeniería
Análisis Avanzado de Estructuras ICYA 4422, 2014-10

Introducción a MATLAB

Qué es MATLAB?
MATLAB® (abreviatura de MATrix LABoratory, "laboratorio de matrices") es un lenguaje de alto nivel y un
entorno interactivo para el cálculo numérico, la visualización y la programación. Mediante MATLAB, es posible
analizar datos, desarrollar algoritmos y crear modelos o aplicaciones. El lenguaje, las herramientas y las
funciones matemáticas incorporadas permiten explorar diversos enfoques y llegar a una solución más eficiente
comparado con hojas de cálculo o lenguajes de programación tradicionales. MATLAB se puede utilizar en una
gran variedad de aplicaciones, tales como procesamiento de señales y comunicaciones, procesamiento de
imagen y vídeo, sistemas de control, pruebas y medidas, finanzas computacionales y biología computacional.

http://www.mathworks.es/videos/getting-started-with-matlab-68985.html?s_tid=main_tutorial_ML_rp

Entorno de MATLAB
La interfaz de MATLAB tiene los siguientes componentes básicos (ver Figura 1):
1) Menú principal: permite guardar, generar y exportar archivos, además de otras opciones básicas del
programa.
2) Command Window: Ventana para ejecución de líneas de comandos, típicamente permite:
- Creación y visualización de variables
- Operaciones básicas, ejecución de comandos de MATLAB
- Ejecución de funciones y rutinas
Para ejecutar una línea de comando, se debe escribir la expresión a continuación del prompt (>>), y enter.
Si no se quiere ver el resultado de la expresión en pantalla, la expresión debe finalizar con punto y coma
(;). También permite usar el comando help¸el cual proporciona información básica de las funciones y
comandos integrados del programa. Por ejemplo, para saber de
3) Command History: ventana que contiene el historial de comandos realizados.
4) Workspace: ventana que contiene la lista de variables almacenadas por el programa.
5) Variable Editor: Al hacer doble clic sobre una de las variables en Workspace, se abre una nueva ventana
que muestra dicha variable en un formato matricial por casillas (como Excel), que permite visualizar o
modificar la variable seleccionada.
6) Editor: Ventana principal para la creación de archivos de comandos (archivos .m) bajo un entorno de
programación. Permite crear archivos de comandos y/o funciones a partir de una secuencia de líneas de
comando. Los archivos de comandos ejecutan una serie de instrucciones al ser llamado, y estas
instrucciones en el archivo de comandos operan en el Workspace definido. Los archivos de funciones
requieren de unos parámetros de entrada (argumentos) para su ejecución, y estos parámetros deben
ser definidos por el usuario.
7) Current Directory: Muestra la ubicación actual de la ruta en la cual se almacenan y ejecutan las variables.
Es necesario definirla cuando se esté trabajando con archivos de comando (archivos .m), o cuando se
estén cargando variables o datos externo

Definición de Variables
Todas las variables son definidas de forma matricial. Variables que contienen un único dato son
escalares; variables con una única fila o columna son vectores, matrices y elementos.

x = 5; (Escalar)
v = [1,2,3,4]; (Vector)
A = [1,2,3;4,5,6;7,8,9]; (Matriz)
Elem{i}.E = 200000; (Arreglo de estructuras)

Las variables pueden ser nombradas utilizando una combinación de letras, números y símbolos, por
ejemplo A_3b = 35. Además, MATLAB es capaz de distinguir entre mayúsculas y minúsculas.

ICYA 4422 – Primer semestre de 2014 – Pag. 1


Departamento de Ingeniería Civil y Ambiental
Facultad de Ingeniería
Análisis Avanzado de Estructuras ICYA 4422, 2014-10

Figura 1. Entorno de MATLAB

Operadores y Funciones Básicas


Operadores Básicos
+ Suma
- Resta
* Multiplicación
/ División
^ Potencia

Funciones Básicas
sqrt( ) Raíz cuadrada
exp( ) Exponencial
max( ) Máximo
min( ) Mínimo
abs( ) Valor absoluto
sin( ) Seno con ángulos en radianes
sind( ) Seno con ángulos en grados
cos( ) Coseno
tan( ) Tangente
pi( ) Pi
log( ) Logaritmo natural
log10( ) Logaritmo en base 10

Operadores Lógicos y de Relación


< Menor a
<= Menor igual a
> Mayor a

ICYA 4422 – Primer semestre de 2014 – Pag. 2


Departamento de Ingeniería Civil y Ambiental
Facultad de Ingeniería
Análisis Avanzado de Estructuras ICYA 4422, 2014-10

>= Mayor igual a


== Igual a
=~ Diferente a
& Y
| O
~ No

Caracteres Especiales
[] Definición de matrices
() Precedencia aritmética en expresiones, definición de argumentos
, Separador de elementos en matrices, y argumentos en funciones
; Separador de filas en matrices, separador de declaraciones
% Inicio de comentarios

Operaciones con Matrices y Vectores


Z = zeros(m,n) Crea una matriz Z de m x n con todos los elementos iguales a cero
B = ones(m,n) Crea una matriz B de m x n con todos los elementos iguales a uno
[u,v] = size(A) Devuelve las variables u y v con los valores correspondientes del número de filas y de
columnas de la matriz (u = m, v = n). Cuando m ó n es igual a 1 (cuando A es un vector), se
puede obtener la dimensión del vector por medio del comando length(A)

a = A(i,j) Devuelve la variable a con el valor del elemento en la posición i,j de la matriz A

r = A(k,:) Devuelve la variable r como un vector que contiene todos los elementos en la fila k de la
matriz A

c = A(:,k) Devuelve la variable r como un vector que contiene todos los elementos en la columna k de
la matriz A

D = A.*s Devuelve la matriz D que contiene la multiplicación de cada uno de los elementos de A por
un escalar s. Esta misma operación puede realizarse para sumas, restas, divisiones,
potencias, etc
[V,D] = eig(X) produce una matriz diagonal D con los valores propios de la matriz, y una matriz V cuyas
columnas corresponden a los vectores propios tal que X*V = V*D.

Secuencias de Control de Flujo


Control Condicional – Secuencia if, else, elseif
Permite ejecutar una secuencia determinada siempre y cuando se cumpla una condición inicial o de
entrada a la secuencia. La sintaxis es la siguiente:
if condición_1
secuencia_1
end

if condición_1
secuencia_1
else
secuencia_ 2
end

ICYA 4422 – Primer semestre de 2014 – Pag. 3


Departamento de Ingeniería Civil y Ambiental
Facultad de Ingeniería
Análisis Avanzado de Estructuras ICYA 4422, 2014-10

La condición de entrada para cada secuencia establecida es normalmente una operación lógica, y la secuencia
es una serie de operaciones o pasos que se ejecutan siempre y cuando se cumpla la condición. El recorrido de
la secuencia if implica que al entrar en una de las secuencias definidas, no se entrará en ninguna otra pues son
excluyentes. Si no se cumple ninguna condición de entrada, el recorrido termina sin ejecutar ninguna de las
secuencias interiores.

Control de Ciclos – Secuencia for


Permite ejecutar una secuencia específica un número determinado de veces, recorriéndola en forma de
ciclos. La sintaxis es la siguiente;

for variable = inicio : paso : final


secuencia_1
end

El recorrido de ciclos se lleva a cabo desde un valor inicial de la variable, la cual aumenta un paso cada ciclo,
hasta alcanzar el valor declarado como final. Por defecto, si no se especifica el paso con el cual aumenta la
variable, el programa lo tomará como 1, y por lo tanto para recorrer una variable que aumenta una unidad
por ciclo, únicamente es necesario declarar el inicio y el final (variable = inicio : final).

Control de Ciclos – Secuencia while


Permite ejecutar una secuencia específica un número indeterminado de veces, siempre y cuando se cumpla
la condición establecida. La sintaxis es la siguiente.

while condición_1 secuencia_1


secuencia_1
end

El programa verificará el cumplimiento de la condición de entrada, y mientras se cumpla dicha


condición, permanecerá dentro del ciclo, ejecutando la secuencia. En el momento en que la condición de
entrada deje de ser válida, saldrá del ciclo.

Declaración de Funciones
Las funciones son secuencias de ejecución que requieren argumentos ingresados por el usuario. Se debe
especificar el nombre de las variables de salida, así como el orden y la cantidad de argumentos de entrada.
La sintaxis para su definición es la siguiente:

function [out_1,out_2] = ejemplo(in_1,in_2,in_3)


secuencia_1
secuencia_2
end

La function ejemplo requiere de tres argumentos de entrada, en el orden establecido, y ejecuta una serie de
operaciones y secuencias que resultan en dos variables de salida. Al llamar la función, se debe escribir
el nombre seguido de los argumentos. La sintaxis para su ejecución es la siguiente:

ejemplo(a,b,c)

En algunos casos, no se requiere asignar ningún resultado a una variable de salida, como es el caso en que el
resultado es una gráfica. Para esto, la definición de la función puede omitir la declaración de la variable de
salida:

function ejemplo(in_1,in_2,in_3)

ICYA 4422 – Primer semestre de 2014 – Pag. 4


Departamento de Ingeniería Civil y Ambiental
Facultad de Ingeniería
Análisis Avanzado de Estructuras ICYA 4422, 2014-10

Manejo de Información
Cargar Información
MATLAB permite cargar diferentes tipos de archivos que contienen información y almacenarlos como
variables. Una forma común de ingresar bases de datos es cargar un archivo de texto que contenga una lista
de datos, y organizarlos en un vector o matriz.

V = load(‘Nombre del archivo.txt’);

El comando load permite cargar los valores de un archivo de texto (que debe estar en el directorio del
archivo.m que se está ejecutando), y almacenarlos de forma matricial en el vector V. Desde este punto, la
información del archivo de texto pasa a ser una serie de elementos del vector que pueden ser
operados con las funciones y secuencias de MATLAB.

Exportar Información
También se permite exportar los resultados o variables ejecutadas en archivos de salida, utilizando muchos
formatos diferentes. Por ejemplo, si se desea exportar un vector U en formato ASCII, utilizando un espacio
como delimitador de objetos, la sintaxis es la siguiente:

dlmwrite(‘Nombre del archivo.txt’,U,’ ‘)


save Nombre del archivo.txt nombre de la variable extensión

El archivo de salida resultante será un archivo de texto con el nombre especificado, guardado en el
Current Directory, cuyos valores están delimitados por espacio.

Gráficas
MATLAB es una poderosa herramienta para graficar datos, y cuenta con muchos tipos de gráficas en dos y
tres dimensiones. La forma más simple de graficar es utilizando el comando plot, el cual tiene la siguiente
sintaxis:

plot(x,y,…)

Al ejecutar este comando, se crea una gráfica con los valores del vector x en el eje de las abscisas, y los
valores del vector y en el eje de las ordenadas, y automáticamente escoge el formato más apropiado de los
ejes para su visualización. Adicionalmente, se pueden definir parámetros de la gráfica después del comando
plot, como el título, los ejes, el color de línea, el tipo de línea, etc. A continuación se listan los comandos
complementarios más comunes.

title(‘Título del gráfico’)


xlabel(‘Título del eje x’)
ylabel(‘Título del eje y’)
axis([xi xf yi yf])
La declaración del tipo y color de línea puede hacerse dentro del comando plot (como se indica por los
puntos suspensivos en la sintaxis). Las abreviaciones para algunos tipos y colores disponibles son:

_ Línea solida (por defecto)


-- Línea segmentada
: Línea punteada
-. Línea segmento-punto
+ Marcador cruz
o Marcador círculo
* Marcador asterisco
x Marcador equis

ICYA 4422 – Primer semestre de 2014 – Pag. 5


Departamento de Ingeniería Civil y Ambiental
Facultad de Ingeniería
Análisis Avanzado de Estructuras ICYA 4422, 2014-10

r Color rojo
g Color verde
b Color azul
k Color negro

Los anteriores tipos de línea, marcador y color pueden definirse simultáneamente en el comando plot, de la
siguiente manera:

plot(x,y,’--*r’) Línea segmentada con marcadores de asterisco, color rojo

Otros comandos de importancia al graficar con MATLAB son:

hold on Permite “congelar” la gráfica actual e ingresar otra serie de datos en la misma gráfica.
Si no se especifica éste comando, al graficar la siguiente serie, se sobrescribe la gráfica,
perdiendo los anteriores datos

subplot(m,n,p) Permite dividir el espacio del gráfico en un arreglo de m x n espacios separados, y


escogiendo el actual por medio del marcador de posición p. Al declarar el comando subplot
seguido del comando plot, se divide el espacio del gráfico, y posteriormente se grafica con
el comando plot en la posición p del arreglo.

Ejemplo (2-6)
Un sistema de un grado de libertad con amortiguamiento ξ; como el mostrado en la Figura 2-22, es sometido
a una aceleración en su base tal como se muestra en la Figura 2-23(a), la cual corresponde a la suma de dos
funciones escalón como se muestra en la Figura 2-23(b). La aceleración del terreno ao es 0.20 g y el tiempo
ta de duración de la aceleración es de 10 s.

Debe encontrarse la respuesta en términos de desplazamiento para cualquier tiempo t, para un sistema con
un período T de 2 s y un coeficiente de amortiguamiento crítico ξ de 5%.

ICYA 4422 – Primer semestre de 2014 – Pag. 6


%Ejemplo 2-6
clear clc

%Datos de entrada
%Aceleración del terreno [g]
ao = 0.20;
%Duración de la aceleración [s]
ta = 10;
%Periodo del sistema [s]
T = 2;
%Coeficiente de amortiguamiento
xi = 0.05;

%Calcular frecuencia natural del sistema


w = 2*pi()/T;

%Calcular frecuencia amortiguada del sistema


wa = sqrt(1-xi^2)*w;

%Crear vector de tiempo


t = 0:0.01:2*ta;

%Crear vector de aceleración [g]


a(1) = 0;
for i = 2:length(t)
if t(i) <= ta
a(i) = ao;
else
a(i) = 0;
end
end

%Convertir aceleración del terreno a unidades de m/s² ao = ao*9.81;

%Calcular respuesta dinámica en términos de desplazamiento [m]


for i = 2:length(t)
if t(i) < ta
u(i) = (-ao/(w^2))*(1-exp(-xi*w*t(i))/wa*...
(xi*w*sin(wa*t(i))+wa*cos(wa*t(i))));
else
u(i) = (-ao/(w^2))*(1-exp(-xi*w*t(i))/wa*...
(xi*w*sin(wa*t(i))+wa*cos(wa*t(i)))) + ...
(ao/(w^2))*(1-exp(-xi*w*(t(i)-ta))/wa*...
(xi*w*sin(wa*(t(i)-ta))+wa*cos(wa*(t(i)-ta))));

end

end

%Graficar aceleración de entrada subplot(2,1,1);


plot(t,a,'r')
title('Aceleración de entrada')
xlabel('Tiempo [s]')
ylabel('Aceleración [g]')
axis([0 max(t) -1.2*max(a) 1.2*max(a)])
line([0 max(t)],[0 0],'Color','k')

%Graficar respuesta en términos de desplazamiento subplot(2,1,2);


figure;
plot(t,u,'b')
title('Respuesta dinámica')
xlabel('Tiempo [s]')
ylabel('Desplazamiento [m]')
axis([0 max(t) -0.4 0.2])
line([0 max(t)],[0 0],'Color','k')
grid on

Das könnte Ihnen auch gefallen