Está en la página 1de 16

MATLAB

MATLAB (abreviatura de MATrix LABoratory, ”laboratorio de matri-


ces”) lanzado al mercado en 1984, es un software matemático que ofrece
un entorno de desarrollo integrado (IDE) con un lenguaje de programación
propio (lenguaje M), siendo un lenguaje de alto nivel, con un entorno inter-
activo para el cálculo, la visualización y la programación numérica con una
gran variedad de aplicaciones, tales como procesamiento de señales y comu-
nicaciones, procesamiento de imagen y vı́deo, sistemas de control, pruebas
y medidas, economı́a computacional y biologı́a computacional. Además con
MATLAB, es posible analizar datos, desarrollar algoritmos y crear modelos
o aplicaciones permitiendo que las herramientas y las funciones matemáticas
incorporadas puedan explorar diversos enfoques y llegar a una solución an-
tes que con hojas de cálculo o lenguajes de programación tradicionales, como
C/C++ o Java, siendo entonces, un lenguaje de gran utilidad para ingenieros
y cientı́ficos en el área industrial y de la educación.

Fig. 1.1: Sı́mbolo de MATLAB

Entre las prestaciones principales que tiene MATLAB se encuentran: la ma-


nipulación de matrices, la representación de datos y funciones, la implemen-
tación de algoritmos, la creación de interfaces de usuario (GUI) y la comu-
nicación con programas en otros lenguajes.. Además el software cuenta con
dos herramientas adicionales que incrementan su potencial de uso, estas son:
Simulink que consiste en un entorno de diagramas de bloque para la simu-
lación multidominio y el diseño basado en modelos, admitiendo el diseño y la
simulación a nivel de sistema, ası́ como la generación automática de código
y la prueba y verificación continua de los sistemas embebidos y GUIDE
(editor de interfaces de usuario - GUI). Adicionalmente, existe la posibili-
dad de ampliar la capacidades de MATLAB mediante el desarrollo de cajas
de herramientas (Toolboxes); y las de Simulink con los paquetes de bloques
(Blocksets).

M. en T.A. Yair Lozano Hernández


La dirección web del fabricante MathWorks donde se puede encontrar in-
formación del software es: www.mathworks.com/products/matlab y la ulti-
ma versión de este paquete fue lanzada en marzo 2012, denominándose7.14
(R2012a), desde la primera versión MATLAB fue programado en C y Java, y
se ejecuta en los sistemas operativos Windows, Mac OS X, Unix, GNU/Linux,
funcionando en las plataformas x86 (32bits y 64 bits).

Por otro lado, las funcionalidades de MATLAB se agrupan en un poco más


de 35 cajas de herramientas y paquetes de bloques (para Simulink) y el
fabricante las clasifican en las siguientes categorı́as2 :
2
Para más detalle del contenido de cada categorı́a y las cajas de herramientas se reco-
mienda revisar la página web de fabricante o la ayuda incluida en el software

MATLAB Simulink
Cálculo Paralelo Modelado de punto fijo
Matemáticas, Estadı́stica y Optimización Modelado basado en eventos
Diseño y análisis de sistemas de control Modelado fı́sico
Procesamiento de señales y comunicaciones Diseño y análisis de sistemas de
control
Procesamiento de imágenes y Visión Artificial Procesamiento de señales y comu-
nicaciones
Prueba y medición Generación de código
Finanzas computacionales Creación rápida de prototipos y
simulación hardware-in-the-loop
(HIL)
Biologı́a computacional Verificación, validación y pruebas
Generación de Código y Verificación Gráficas de Simulación e Informes
Implementación de aplicaciones
Acceso Base de Datos e Informes

Tabla 1.2: Categorı́as de MATLAB

Finalmente, existen otros software de computo numérico con caracterı́sticas


similares a MATLAB como: GNU Octave (www.gnu.org/software/octave) o
SciLab (www.scilab.org) basado en software libre, los cuales también se pue-
den utilizar en una gran variedad de aplicaciones cientı́ficas y de ingenierı́a.
1. Entorno
Para iniciar el programa MATLAB se realiza el procedimiento de arranque
de cualquier aplicaci´on de Windows y aparecer´a una una ventana similar
a la mostrada en la Figura 1, este tipo de vista que se obtiene eligiendo la
opción Desktop Layout/Default.
De la ventana principal esta conformada de subventanas, destacando las
siguientes: M. en T.A. Yair Lozano Hernández

Existe una subventana llamada Command Window, que es lugar es


donde se ejecutan los comandos de MATLAB y se puede identificar por
el prompt caracterı́stico (>>), que indica que el programa está prepa-
rado para recibir instrucciones.

La ventana Current Directory (folder) muestra los ficheros del di-


rectorio activo o actual.

Fig. 1: Ventana principal de Matlab

La ventana Workspace contiene información sobre todas las variables


que se hayan definido en esta sesión y permite ver y modificar las
matrices con las que se esté trabajando.

La ventana Command History que muestra los últimos comandos


ejecutados en la Command Window.
Otro elemento esencial, que debe mencionarse es Editor/Debugger, el
cual, es el entorno donde se pueden escribir las instrucciones de MATLAB
mediante la creación de archivos con extensión *.m, que contienen conjuntos
de comandos o definición de funciones. La importancia de estos archivos-M
es que al teclear su nombre en la lı́nea de comandos y pulsar Intro, se ejecu-
tan todos comandos contenidos en dicho archivo, permitiendo su ejecución
cuando se desee.

Aunque los archivos *.m se pueden crear con cualquier editor de textos, el
Editor/Debugger que permite crear y modificar estos, ası́ como ejecutarlos
paso a paso para ver si contienen errores (proceso de Debug o depuración).
La Figura 3.2 muestra la ventana principal del Editor/Debugger. Algunas
caracterı́sticas del editor se mencionan acontinuación:

Al seleccionar varias lı́neas y dando clic con el botón derecho aparece


un menú contextual cuya sentencia Comment permitiendo comentar
con el carácter % todas las lı́neas seleccionadas.

Otra opción muy útil de ese menú contextual es Smart Indent, que
organiza el sangrado de los bucles y bifurcaciones de las sentencias
seleccionadas.

La ejecución puede ser controlado con el Debugger eligiendo el coman-


do Run en el menú Debug, pulsando la tecla F5 ,con el sı́mbolo de la
barra de herramientas del Editor o escribiendo el nombre del archivo
en la lı́nea de comandos de la Command Window.

Fig. 2: Editor/debugger
2. Comandos básicos
Variables y operadores
Los operadores básicos y constantes especiales que tiene MATLAB son:

Aritméticos

• Suma: +
• Resta: −
• Multiplicación: ∗
• Division:/
• Potencia: ∧

Lógicos y Relacionales: Realizan la comparación de escalares ( o de


matrices elemento a elemento1 ). Si se cumple la comparación devuelve
un 1, en caso contrario devuelve un 0.Los operadores de este tipo son:

• menor que: <


• mayor que: >
• igual: ==
• mayor o igual:>=
• menor o igual:<=
• no igual: ∼=

Cabe mencionar que no se deben dejar espacios entre los operadores


formados por dos sı́mbolos y en caso de datos complejos con los opera-
dores == y =, se compara la parte real e imaginaria.

Asignación: El operador de asignación en el sı́mbolo =.

Variables y constantes especiales

• ans: respuesta cuando no asigna expresión.


• eps: precisión minima de maquina.
• pi:π

• i,j: ( − 1)
• inf:ı́nf
• NaN: Not a number
• clock: Reloj
• date: Fecha
• flops: Número de operaciones en punto flotante
1
La definición de escalares y matrices se presentará posteriormente.
A continuación se explica como realizar algunas operaciones elementales como
las siguientes:
)) x=2+3

x =

5
Una aspecto importante a mencionar, es que si no se asigna el resultado a
ninguna variable, MATLAB lo asigna por defecto a la variable ans:
)) 2+3

ans =
5
Además, si al final del comando se pone punto y coma, el resultado no apa-
rece en pantalla.

Finalmente, como en todos los lenguajes de programación existe un orden


en que se realizan las operaciones y en MATLAB es el siguiente: primero,
la potencia; luego, las multiplicaciones y divisiones; y posteriormente, las
sumas y las restas. Si se quiere tener un determinado orden, se deben utilizar
paréntesis, que se evalúan siempre al principio. Por ejemplo, para hallar dos
entre tres,
)) 2/2+1

ans =

2
)) 2/(2+1)
ans =

0.6667

3. Vectores, Matrices, Arreglos y Cadenas


3.1. Vectores
En MATLAB los datos en vectores y matrices, se escriben dentro corche-
tes y sus elementos se separan por espacios y comas.
Si una matriz tiene un solo elemento se le conoce como escalar.
Si una matriz tiene una fila o una columns, la llamamos vector fila o
columna
Ejemplo

>> v=[83 20 21] % vector fila


v =
83 20 21

>> y=[11; 12; 13] % vector columna


y =
11
12
13

Para obtener un elemento de un vector se usan ı́ndices entre paréntesis, Y en


MATLAB empiezan en 1.
>> v(2)
ans=
20

También se puede referenciar varios elementos usando el operador :.


>> v(2:3)
ans=
20 21

Los vectores son utilizados para representar polinomios, es decir contienen


en orden descendiente los coeficientes del polinomio. Por ejemplo, el polino-
mio s3 + 2s2 + 3s + 4 se representa:
p=[1 2 3 4];

Mediante la función roots se pueden encontrar lad raı́ces del polinomio.


roots(p)

3.2. Matrices
Las matrices son un conjunto de datos acomodados en fila y columnas. Los
elementos de una misma fila están separados por blancos o comas, mientras
que las filas están separadas por pulsaciones enter o por caracteres punto y
coma (;). Por ejemplo, el siguiente comando define una matriz A de dimensión
(3 × 3):
>> A=[1 2 3; 4 5 6; 7 8 9]
A =
1 2 3
4 5 6
7 8 9
Si una matriz tiene el mismo numero de filas y columnas se denomina matriz
cuadrada.
A continuación comentamos algunos aspectos de las matrices.
Para separar filas usa ; o bien al pulsar enter.
Los elementos de las matrices y vectores pueden ser reales, complejos
y expresiones.
Si se introducen datos cuya sintaxis es muy larga, se puede continuar
en la siguiente linea introduciendo al final tres puntos seguidos (...)

Por otro lado, para asignación de valores iniciales a matrices se utilizan los
siguientes métodos:
Lista explı́citamente: La manera más sencilla de definir una matriz
es usar una lista de números, como se muestra enseguida:

A = [2.5];
B= [2 3.5];
C=[-2, 0 1; 1,1,0; 1 -1,0];
D= [-1, 0, 1; 1,1,0; 1, -1,0; 3.5,0.5,2];

También se puede definir una matriz poniendo cada fila en una lı́nea
aparte:

C=[-2, 0 1
-1,1,0
1 -1,0];

En el caso de que hubiera demasiados números en una fila de una matriz


se pueden continuar en la siguiente lı́nea mediante el uso una coma y
tres puntos (puntos suspensivos) al final de la lı́nea para indicar que la
fila debe continuar. Por ejemplo:

p=[-2, 0 ,1,-2,1,0 1 -1,0]


es similar a
p=[-2, 0 ,1,...
-2,1,0 1 -1,0]
Operador dos puntos:El operador de dos puntos es un operador muy
útil para crear matrices y puede usarse para crear vectores a partir de
una matriz, almacenando una fila o columna en particular. Un ejemplo
se describe enseguida.

Si definimos a
f=[1, 2, 3, 4; 2,3,4,5;3,4,5, 6]
obtendremos los siguientes vectores
x=f(:,1) % vector columna, obtiene la primer columna de f
y=f(1,:) % vector fila, obtiene la primer fila de f
Se puede usar el signo de dos puntos para separar dos enteros, el ope-
rador de dos puntos generará todos los enteros entre los dos enteros
especificados.
Otra manera de usar el operador es separando tres números, el operador
deh=dos
1:3puntos generará valores entre el primer número y el tercero,
f=[1:4;2:5;3:6]
usando el segundo número como incremento.

tiempo= 1:0.1:5
f=[1:0.5:4;2:0.5:5;3:0.5:6]

El operador de dos puntos también puede servir para seleccionar una


submatriz de otra matriz.

Sea C=[-2, 0 1; 1,1,0; 1 -1,0]

C =

-2 0 1
1 1 0
1 -1 0
y si se ejecuta,
c1=C(:,2:3), obtenemos
c1 =

0 1
1 0
-1 0

Ahora, si se ejecuta

c2=C(2:3,1:2), se obtiene

c2 =

1 1
1 -1
Otra manera de definir matriz es usando funciones de MATLAB, las
cuales permiten la definición de matrices especiales, como serı́an:
• La función zeros genera una matriz que contiene sólo ceros.

A = zeros(3); % define una matriz de ceros de 3 por 3


B = zeros(3,2); % define una matriz de ceros de 3 por 2

• La función ones genera una matriz que sólo contiene unos.


A = ones(3); % define una matriz de unos de 3 por 3
B = ones(3,2); % define una matriz de unos de 3 por 2

• Una matriz identidad es una matriz con unos en la diagonal prin-


cipal y ceros, y se obtiene mediante la función eye
A = eye(3); % define una matriz de unos de 3 por 3
B = eye(3,2); % define una matriz de unos de 3 por 2

Una función interesante en el uso de matrices es size que devuelve dos


argumentos escalares que representan el número de filas y el número de
columnas. En el caso de vector la función length devuelve el numero
de elementos de un vector.
Operadores de matrices
Existen diversos operadores que son utilizados para realizar cálculos con
matrices a continuación se describen.

+ adición o suma

- sustracción o resta

* multiplicación

’ traspuesta

^ potenciación

\ división-izquierda (Equivalente a multiplicar por la inversa de una


matriz)
/ división-derecha

.* producto elemento a elemento

./ y .\ división elemento a elemento

.^ elevar a una potencia elemento a elemento


El operador que requiere un poco de mas atención es operador de división /
que se usa para dividir por un escalar todos los elementos de una matriz o
un vector. A diferencia del operador división-izquierda por una matriz ( \)
que equivale a pre-multiplicar por la inversa de esa matriz.

3.3. Cadena de caracteres


MATLAB puede definir variables que contengan cadenas de caracteres.
En MATLAB las cadenas de texto van entre apóstrofos o comillas simples

s = ’cadena de caracteres’

Los caracteres de una cadena se almacenan en un vector, con un carácter


por elemento. Cada carácter ocupa dos bytes. Una matriz de caracteres
es una matriz cuyos elementos son caracteres, o bien una matriz cuyas filas
son cadenas de caracteres. Todas las filas de este tipo de matriz deben tener
el mismo número de elementos. Si es preciso, las cadenas (filas) más cortas
se completan con blancos.

>> c=’cadena’
c =
cadena
>> size(c) % dimensiones del array
ans =
1 6
>> double(c) % convierte en números ASCII cada carácter
ans =
99 97 100 101 110 97
>> char(abs(c)) % convierte números ASCII en caracteres
ans =
cadena
>> cc=char(’uno’,’videos’) % convierte dos cadenas en una matriz
cc =
uno
videos
>> size(cc) % se han a~
nadido tres espacios a ’uno’
ans =
2 6

3.4. Entrada y salida de datos


Para visualizar datos se utilizan as funciones

disp

disp(temp) %% despliega el valor de la variable temp


disp(’grados F’) %despliega el texto grados F
fprintf

fprintf(Formato, variable)
Un ejemplo
fprintf(’%f %f\n’, temp,x)

El formato contiene el texto y las especificaciones de formato para


las salidas, y va seguido de los nombres de las variables por exhibir.
Dentro del formato se usan los especificadores %e, %f y %g que indican
dónde se exhibirán los valores. Si se usa %e, los valores se exhiben en
una notación exponencial; si se usa %f, los valores se exhiben en una
notación de punto fijo o decimal; si se usa %g. Si aparece la cadena \n
en el formato, se exhibirá la lı́nea especificada hasta ese punto, y el
resto de la información se exhibirá en la siguiente lı́nea.

input, se utiliza para asignar un valor a una variable su funcionamiento


es de la siguiente manera:
variable=input(’Ingrese el valor de la variable: ’)
>> variable=input(’Ingrese el valor de la variable: ’)
Ingrese el valor de la variable: 4

variable =

Para obtener una cadena de caracteres, la sentencia varı́a un poco:

cadena=input(’Ingrese una cadena: ’,’s’)

4. Funciones en MATLAB
4.1. Funciones Matematicas
Las funciones matemáticas permiten realizar cálculos diversos en ámbito
cientı́fico y de ingenierı́a. A continuación se describen las más relevantes:
Funciones comunes

• abs(x) Calcula el valor absoluto de x .


• sqrt(x) Calcula la raı́z cuadrada de X.
• round(x) Redondea x al entero más cercano.
• fix(x) Redondea (o trunca) x al entero más cercano a O.
• floor(x) Redondea x al entero más cercano a -∞.
• ceil(x) Redondea x al entero más cercano a ∞..
• sign(x) Devuelve un valor de -1 si x es menor que 0, un valor de
0 si x es igual a 0 y un valor de 1 si x es mayor que 0.
• rem(x,y) Devuelve el residuo de x/y. Esta función también se
llama función módulo.
• exp(x) Calcula ex , donde e es la base de los logaritmos naturales
• log(x) Calcula el logaritmo natural de x con base e.
• log10(x)Calcula el logaritmo común de x con base 10.

Funciones trigonométricas
• sin(x) Calcula el seno de x, donde x está en radianes.
• cos(x) Calcula el coseno de x, donde x está en radianes.
• tan(x) Calcula la tangente de X, donde x está en radianes.
• asin(x) Calcula el arcoseno o seno inverso de x, donde x debe estar
entre -1 y 1. La función devuelve un ángulo en radianes entre −π/2
y π/2.
• acos (x) Calcula el arcocoseno o coseno inverso de x, donde x debe
estar entre -1 y 1. La función devuelve un ángulo en radianes entre
0 y π.
• atan(x) Calcula la arcotangente o tangente inversa de x. La fun-
ción devuelve un ángulo en radianes entre −π/2 y π/2.
• atan2(y, x) Calcula la arcotangente o tangente inversa del valor
y/x. La función devuelve un ángulo en radianes que está entre −π
y π, dependiendo de los signos de x y de y. Adicionalmente exis-

ten las funciones hiperbólicas que son: sinh(x), cosh(x), tanh(x),


asinh(x), acosh(x),atanh(x).
Funciones de números complejos. Una de las ventajas de usar MATLAB
es su facilidad para manejar números complejos. Los cuales se almace-
na como dos números reales (que representan la parte real y la parte
imaginaria).
• conj(x) Calcula el conjugado complejo del número complejo x.
Por tanto, si x es igual a a + ib, conj(x) es igual a a - ib.
• real (x) Calcula la parte real del número complejo x.
• imag(x) Calcula la porción imaginaria del número complejo x.
• abs(x) Calcula el valor absoluto o magnitud del número complejo
x.
• angle(x) Calcula el ángulo usando el valor de atan2(imag(x),real
(x)); ası́, el valor del ángulo está entre −π y π.
Existen otras funciones como: polival(a,x), roots(x), conv(a,b), deconv(n,d)
y poly(r) para el manejo de polinomios, por mencionar algunos, una ex-
plicación de todas las funciones se sale del alcance de las notas.

4.2. Programacion en Matlab


Sentencia IF
En su forma más simple, la sentencia if se escribe en la forma siguiente

if condicion
sentencias
end

Existe también la bifurcación múltiple, en la que pueden concatenarse


tantas condiciones como se desee, y que tiene la forma:
if condicion1
bloque1
elseif condicion2
bloque2
elseif condicion3
bloque3
else % opción por defecto para cuando no se cumplan las condiciones 1,2,3
bloque4
end
Sentencia SWITCH
La sentencia switch realiza una función análoga a un conjunto de if...elseif
concatenados. Su forma general es la siguiente

switch switch_expresion
case case_expr1,
bloque1
case case_expr2,
bloque2
...
otherwise, % opción por defecto
bloque3
end
Sentencia FOR
La sentencia for repite un conjunto de sentencias un número predetermi-
nado de veces. La siguiente construcción ejecuta sentencias con valores de i
de 1 a n, variando de uno en uno.
for i=1:n
sentencias
end
o bien,

for i=n:-0.2:1
sentencias
end

While
La estructura del bucle while es muy similar a la de C/C++/Java. Su
sintaxis es la siguiente:
while condicion
sentencias
end

donde condicion puede ser una expresión vectorial o matricial. Las sentencias
se siguen ejecutando mientras haya elementos distintos de cero en condicion,
es decir, mientras haya algún o algunos elementos true. El bucle se termina
cuando todos los elementos de condicion son false (es decir, cero).
Ejericicios
Escribir una programa que devuelva el valor absoluto de un valor da-
do.(no usar abs)
Escribir una programa que devuelva el radio (distancia al origen), re-
cibiendo como argumento las coordenadas cartesianas (x,y).
Escribir un programa que, tras pedir al usuario un número, le informe
de si es par, impar o no entero.
Escribir un programa que calcule los cuadrados de los números enteros,
hasta que el cuadrado sea mayor o igual que 100

También podría gustarte