Está en la página 1de 26

Matlab

Conceptos básicos sobre el escritorio


Cuando inicia MATLAB®, el escritorio aparece con el diseño predeterminado.

ING.METALUGICA
1
El escritorio incluye los siguientes paneles:
 Carpeta actual: para acceder a los archivos.
 Ventana de comandos: para ingresar comandos en la línea de comandos,
identificada por el indicador (>>).
 Área de trabajo: para explorar datos que cree o importe de archivos.
Al trabajar en MATLAB, usted emite comandos que crean variables y llaman funciones.
Por ejemplo, para crear una variable denominada a, debe ingresar esta instrucción en
la línea de comandos:
a=1
MATLAB agrega la variable a al área de trabajo y muestra el resultado en la ventana de
comandos.
a=

1
Cree algunas variables más.
b=2
b=

2
c=a+b
c=

3
d = cos(a)
d=

0.5403
Cuando no se especifica una variable de salida, MATLAB utiliza la variable ans,
abreviatura de answer (respuesta), para almacenar los resultados del cálculo.
sin(a)
ans =

0.8415
Si una instrucción finaliza con punto y coma, MATLAB realiza el cálculo, pero elimina la
visualización de la salida en la ventana de comandos.
e = a*b;
Para recuperar comandos anteriores, presione las teclas de flecha arriba y abajo: ↑ y
↓. Presione las teclas de flecha en la línea de comandos vacía o después de escribir los

ING.METALUGICA
2
primeros caracteres de un comando. Por ejemplo, para recuperar el comando b = 2,
escriba b y luego presione la tecla de flecha arriba.

Matrices y arreglos
MATLAB es la abreviatura de "matrix laboratory" (laboratorio de matrices). Aunque
otros lenguajes de programación mayormente procesan los números de uno en uno,
MATLAB® está diseñado para funcionar principalmente con matrices y arreglos
completos.
Todas las variables de MATLAB son arreglos multidimensionales, sin importar el tipo de
datos. Una matriz en un arreglo bidimensional que a menudo se utiliza para el álgebra
lineal.

Creación de arreglos
Para crear un arreglo con cuatro elementos en una fila única, separe los elementos con
una coma (,) o un espacio.
a = [1 2 3 4]
a=

1 2 3 4

Este tipo de arreglo es un vector fila.


Para crear una matriz con varias filas, separe las filas con punto y coma.
a = [1 2 3; 4 5 6; 7 8 10]
a=

1 2 3
4 5 6
7 8 10

Otra forma de crear una matriz es usando una función, como ones, zeros o rand. Por
ejemplo, cree un vector columna de ceros de 5 por 1.
z = zeros(5,1)

ING.METALUGICA
3
z=

0
0
0
0
0

Operaciones con matrices y arreglos


MATLAB le permite procesar todos los valores de una matriz mediante el uso de una
sola función u operador aritmético.
a + 10
ans =

11 12 13
14 15 16
17 18 20

sin(a)
ans =

0.8415 0.9093 0.1411


-0.7568 -0.9589 -0.2794
0.6570 0.9894 -0.5440

Para trasponer una matriz, use una comilla simple ('):


a'
ans =

1 4 7
2 5 8
3 6 10

Para realizar una multiplicación de matrices estándar, la cual calcula los productos
internos entre filas y columnas, use el operador *. Por ejemplo, confirme que el
producto de una matriz por su inversa es igual a la matriz identidad:
p = a*inv.(a)
p=

ING.METALUGICA
4
1.0000 0 -0.0000
0 1.0000 0
0 0 1.0000

Observe que p no es una matriz de valores enteros. MATLAB almacena los números
como valores de punto flotante, y las operaciones aritméticas son sensibles a
pequeñas diferencias entre el valor real y su representación en punto flotante. Para
visualizar más dígitos decimales, use el comando format:
format Long
p = a*inv.(a)
p=
1.000000000000000 0 -0.000000000000000
0 1.000000000000000 0
0 0 0.999999999999998

Restablezca la visualización al formato más corto con


format short
format influye solo en la visualización de números, no en la forma en que MATLAB los
calcula o los guarda.
Para realizar una multiplicación elemento por elemento en lugar de una multiplicación
de matrices, utilice el operador. *:
p = a.*a
p=

1 4 9
16 25 36
49 64 100

Cada uno de los operadores de matriz para la multiplicación, la división y la potencia


tienen un operador de arreglo correspondiente que opera elemento por elemento. Por
ejemplo, eleve cada elemento de a a la tercera potencia:
a.^3
ans =

1 8 27
64 125 216
343 512 1000

ING.METALUGICA
5
Concatenación
La concatenación es el proceso que consiste en unir arreglos para crear otros más
grandes. De hecho, el primer arreglo de este capítulo resultó de la concatenación de
sus elementos individuales. El operador de concatenación es el par de corchetes: [].
A = [a,a]
A=

1 2 3 1 2 3
4 5 6 4 5 6
7 8 10 7 8 10

La concatenación de arreglos uno junto a otro mediante el uso de comas se conoce


como concatenación horizontal. Cada arreglo debe tener la misma cantidad de filas. De
forma similar, cuando los arreglos tienen la misma cantidad de columnas, es posible
concatenarlos verticalmentemediante el uso de punto y coma.
A = [a; a]
A=

1 2 3
4 5 6
7 8 10
1 2 3
4 5 6
7 8 10

Números complejos
Los números complejos tienen partes reales e imaginarias, donde la unidad imaginaria
es la raíz cuadrada de -1.
sqrt (-1)
ans =
0.0000 + 1.0000i

Para representar la parte imaginaria de números complejos, use i o j.


c = [3+4i, 4+3j; -i, 10j]
c=
3.0000 + 4.0000i 4.0000 + 3.0000i
0.0000 - 1.0000i 0.0000 +10.0000i

ING.METALUGICA
6
Indexación de arreglos:
Cada variable de MATLAB® es un arreglo que puede contener muchos números.
Cuando desee acceder a una selección de elementos de un arreglo, utilice la
indexación.
Por ejemplo, considere el cuadrado mágico de 4 por 4 guardado en A:
A = magic(4)
A=

16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1

ING.METALUGICA
7
Existen dos formas de referirse a un elemento particular de un arreglo. La manera más
común es a través de la especificación de subíndices de fila y columna, como por
ejemplo:
A(4,2)
ans =

14

Menos común, pero a veces útil, es el uso de un subíndice único que recorre cada
columna en orden:
A(8)
ans =

14

El uso de un subíndice único para hacer referencia a un elemento particular de un


arreglo se conoce como indexación lineal.
Si intenta hacer referencia a elementos externos a un arreglo en el lado derecho de
una instrucción de asignación, MATLAB arroja un error.
test = A(4,5)
Index exceeds matrix dimensions.
Sin embargo, es posible especificar elementos fuera de las dimensiones actuales en el
lado izquierdo de una instrucción de asignación. El tamaño del arreglo aumenta para
dar cabida a los nuevos elementos.
A(4,5) = 17
A=

16 2 3 13 0
5 11 10 8 0
9 7 6 12 0
4 14 15 1 17

Para referirse a varios elementos de un arreglo, use el operador de dos puntos, que le
permite especificar un rango de la forma start:end. Por ejemplo, enumere los
elementos en las primeras tres filas y la segunda columna de A:
A(1:3,2)
ans =

2
11
7

ING.METALUGICA
8
Los dos puntos solos, sin valores de inicio o fin, especifican todos los elementos de esa
dimensión. Por ejemplo, seleccione todas las columnas en la tercera fila de A:
A(3,:)
ans =

9 7 6 12 0

El operador de dos puntos también le permite crear un vector de valores


uniformemente espaciados mediante el uso de la forma más general, start: step: end.
B = 0:10:100
B=

0 10 20 30 40 50 60 70 80 90 100

Si se omite el paso intermedio, como en start: end, MATLAB utiliza un paso de 1.

Variables del área de trabajo


El área de trabajo contiene variables creadas dentro de MATLAB® o importadas a la
plataforma a partir de archivos de datos u otros programas. Por ejemplo, estas
instrucciones crean las variables A y B en el área de trabajo.
A = magic(4);
B = rand(3,5,2);
Para ver el contenido del área de trabajo, utilice whos.
whos
Name Size Bytes Class Attributes

A 4x4 128 double


B 3x5x2 240 double
Las variables también aparecen en el panel del área de trabajo del escritorio.

ING.METALUGICA
9
Las variables del área de trabajo no se mantienen al salir de MATLAB. Guarde los datos
para usarlos posteriormente mediante el comando save,
save myfile.mat
El área de trabajo queda guardada en la carpeta de trabajo actual, en un archivo
comprimido con extensión. mat. Estos archivos se denominan "archivos MAT".
Para borrar todas las variables del área de trabajo, use el comando clear.
Para restaurar datos de un archivo MAT en el área de trabajo, utilice load.
load myfile.mat

Texto y caracteres
Cuando trabaje con texto, encierre las secuencias de caracteres entre comillas simples.
Puede asignar texto a una variable.
myText = 'Hello, world';
Si el texto incluye una comilla simple, use dos comillas simples dentro de la definición.
otherText = 'You''re right'
otherText =
'You're right'
myText y otherText son arreglos, como todas las variables de MATLAB®. Su clase o tipo
de datos es char, que es la abreviatura de character(carácter).
whos myText
Name Size Bytes Class Attributes

myText 1x12 24 char

ING.METALUGICA
10
Para concatenar arreglos de caracteres, use corchetes, así como cuando concatena
arreglos numéricos.
longText = [myText,' - ',otherText]
longText =
'Hello, world - You're right'
Para convertir valores numéricos a caracteres, use funciones como num2str o int2str.
f = 71;
c = (f-32)/1.8;
tempText = ['Temperature is ',num2str(c),'C']
tempText =
'Temperature is 21.6667C'

Llamando Funciones
MATLAB® ofrece una amplia gama de funciones que realizan tareas computacionales.
Las funciones son equivalentes a las subrutinas o métodos de otros lenguajes de
programación.
Para llamar a una función, como por ejemplo, max, encierre entre paréntesis sus
argumentos de entrada:
A = [1 3 5];
max(A)
ans = 5
Si hay varios argumentos de entrada, sepárelos con comas:
B = [10 6 4];
max(A,B)
ans =

10 6 5

ING.METALUGICA
11
Para devolver el resultado de una función, asígnelo a una variable:
maxA = max(A)
maxA = 5
Si hay varios argumentos de salida, enciérrelos en corchetes:
[maxA,location] = max(A)
maxA = 5
location = 3
Si el argumento de entrada es un vector de caracteres, enciérrelo en comillas simples:
disp('hello world')
hello world
Para llamar a una función que no requiere ninguna entrada ni devuelve ningún
resultado, escriba solo el nombre de la función:
clc
La función clc despeja la ventana de comandos.

Gráficas en dos y tres dimensiones


Gráficas de líneas
Para crear gráficas de líneas bidimensionales, use la función plot. Por ejemplo, grafique
el valor de la función seno de 0 a 2π  :
x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)

ING.METALUGICA
12
El programa le permite etiquetar los ejes y agregar un título.
xlabel('x')
ylabel('sin(x)')
title('Plot of the Sine Function')

ING.METALUGICA
13
Si agrega un tercer argumento de entrada a la función plot, puede representar
gráficamente las mismas variables mediante el uso de una línea discontinua roja.
plot(x,y,'r--')

ING.METALUGICA
14
La cadena 'r--' es una especificación de línea. Cada especificación puede incluir
caracteres para el marcador, el estilo y el color de la línea. Un marcador es un símbolo
como +, o o * que aparece en cada punto dibujado en la gráfica. Por
ejemplo, 'g:*' especifica una línea verde punteada con marcadores *.
Advierta que los títulos y las etiquetas que definió para el primer diagrama ya no están
en la ventana de la figura actual. Por defecto, MATLAB® borra la figura cada vez que se
llama una función de representación gráfica, y restablece los ejes y otros elementos
para preparar el nuevo diagrama.
Para agregar gráficas a una figura existente, use hold.
x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)

hold on

y2 = cos(x);
plot(x,y2,':')
legend('sin','cos')

Todas las gráficas aparecerán en la ventana de la figura actual hasta que use hold off o
cierre la ventana.

ING.METALUGICA
15
Gráficas tridimensionales
Comúnmente, las gráficas tridimensionales muestran una superficie definida por una
función de dos variables, z = f(x,y).
Para evaluar z, primero cree un conjunto de puntos (x,y) en el dominio de la función
usando meshgrid.
[X,Y] = meshgrid(-2:.2:2);
Z = X .* exp(-X.^2 - Y.^2);
Luego, cree una gráfica de superficie.
surf(X,Y,Z)

Las funciones surf y mesh muestran superficies en tres dimensiones. surf muestra las


líneas de conexión y las caras de la superficie en color. meshproduce superficies de
malla que colorean solo las líneas que conectan los puntos de definición.

ING.METALUGICA
16
Subdiagramas
La función subplot permite visualizar varias gráficas en distintas subregiones de la misma
ventana.
Las primeras dos entradas de subplot indican la cantidad de diagramas en cada fila y columna.
La tercera entrada especifica qué diagrama está activo. Por ejemplo, cree cuatro diagramas en
una cuadrícula de 2 por 2 dentro de una ventana de una figura.
t = 0:pi/10:2*pi;
[X,Y,Z] = cylinder(4*cos(t));
subplot(2,2,1); mesh(X); title('X');
subplot(2,2,2); mesh(Y); title('Y');
subplot(2,2,3); mesh(Z); title('Z');
subplot(2,2,4); mesh(X,Y,Z); title('X,Y,Z');

Programación y scripts

ING.METALUGICA
17
El tipo de programa más simple de MATLAB® se conoce como script. Un script es un archivo
con extensión .m que contiene varias líneas secuenciales de comandos y llamadas a funciones
de MATLAB. Para ejecutar un script, escriba su nombre en la línea de comandos.
Script de muestra
Para crear un script, use el comando edit:
edit plotrand
Esta instrucción abre un archivo en blanco llamado plotrand.m. Ingrese código para graficar un
vector de datos aleatorios:
n = 50;
r = rand(n,1);
plot(r)
A continuación, agregue código para trazar una línea horizontal en la gráfica a la altura de la
media:
m = mean(r);
hold on
plot([0,n],[m,m])
hold off
title('Mean of Random Uniform Data')
Cuando escriba código, se recomienda agregar comentarios que describan el código. Los
comentarios permiten que otros comprendan su código y, además, pueden refrescar su
memoria cuando deba retomarlo más tarde. Para agregar comentarios, use el símbolo de
porcentaje (%).
% Generate random data from a uniform distribution
% and calculate the mean. Plot the data and the mean.

n = 50; % 50 data points


r = rand(n,1);
plot(r)

% Draw a line from (0,m) to (n,m)


m = mean(r);
hold on
plot([0,n],[m,m])
hold off
title('Mean of Random Uniform Data')
Guarde el archivo en la carpeta actual. Para ejecutar el script, escriba su nombre en la línea de
comandos:
plotrand
También es posible ejecutar scripts desde el Editor. Para ello, presione el
botón Run (Ejecutar),  .

ING.METALUGICA
18
Bucles e instrucciones condicionales
Dentro de un script, se pueden hacer bucles sobre ciertas secciones del código y ejecutar
secciones en forma condicional mediante el uso de las palabras
clave for, while, if y switch.
Por ejemplo, cree un script llamado calcmean.m con un bucle for para calcular la media
de cinco muestras aleatorias y la media general.
nsamples = 5;
npoints = 50;

for k = 1:nsamples
currentData = rand(npoints,1);
sampleMean(k) = mean(currentData);
end
overallMean = mean(sampleMean)
Ahora, modifique el bucle for para poder ver
los resultados en cada iteración. Muestre
texto en la Ventana de Comandos que incluya el número de iteración y elimine el punto
y coma de la asignación a sampleMean.
for k = 1:nsamples
iterationString = ['Iteration #',int2str(k)];
disp(iterationString)
currentData = rand(npoints,1);
sampleMean(k) = mean(currentData)
end
overallMean = mean(sampleMean)
Cuando ejecuta el script, este muestra los resultados intermedios y luego calcula la
media general.
calcmean
Iteration #1

sampleMean =

0.3988

Iteration #2

sampleMean =

0.3988 0.4950

Iteration #3

sampleMean =

ING.METALUGICA
19
0.3988 0.4950 0.5365

Iteration #4

sampleMean =

0.3988 0.4950 0.5365 0.4870

Iteration #5

sampleMean =

0.3988 0.4950 0.5365 0.4870 0.5501

overallMean =

0.4935
En el Editor, agregue instrucciones condicionales al final de calcmean.m para mostrar un
mensaje diferente según el valor de overallMean.
if overallMean < .49
disp('Mean is less than expected')
elseif overallMean > .51
disp('Mean is greater than expected')
else
disp('Mean is within the expected range')
end
Ejecute calcmean y verifique que aparece el mensaje correcto para el valor calculado
en overallMean. Por ejemplo:
overallMean =

0.5178

Mean is greater than expected


Ubicación de scripts
MATLAB busca scripts y otros archivos en determinados lugares. Para ejecutar un script, el
archivo debe estar en la carpeta actual o en una carpeta de la ruta de búsqueda.
De forma predeterminada, la carpeta MATLAB creada por el instalador de MATLAB se
encuentra en la ruta de búsqueda. Si desea almacenar y ejecutar programas en otra carpeta,
agréguela a la ruta de búsqueda. Seleccione la carpeta en el explorador de Carpeta Actual,
haga clic con el botón secundario y luego seleccione Add to Path (Agregar a ruta).

Ayuda y documentación
Todas las funciones de MATLAB® tienen documentación de respaldo que incluye
ejemplos y describe sus entradas, sus salidas y sus sintaxis de llamada. Hay varias
formas de acceder a esta información desde la línea de comandos:
 Abra la documentación de la función en una ventana aparte con el
comando doc.
doc mean

ING.METALUGICA
20
 Para ver las distintas posibles sintaxis de una función en la Ventana de
Comandos, escriba el nombre de la función y haga una pausa después de escribir el
paréntesis de apertura para los argumentos de entrada.
mean(
 Para ver una versión abreviada del texto de la documentación de la función en
la Ventana de Comandos, use el comando help.
help mean
Para acceder a la documentación completa del producto, haga clic en el ícono de
ayuda  .

Declaración de una matriz de 3x3


Dada una matriz:

>> A=[1 -2 3;4 1 -1;2 -1 3];


>> B=[ 11; 4; 10];

A=
2
-3
1

Nota: Se usa "[" para empezar a declarar la matriz; se cierra con "]". Para pasar a la
segunda fila agrego un ";" y cada componente este separado por un "espacio".
Recuerde que si no quiere ver la salida del comando ingrese ";" al final.

Suma de matrices
Suponga que quiero hacer la siguiente operación entra las matrices a y b. Cabe aclarar que las
matrices tienen que ser de las mismas dimensiones, para este ejemplo se definieron dos matrices
de 2x2.

Código en Matlab:

>> a= [2 .5;1 3]; b= [2 1;.5 3]; %Declaración de las matrices.


>> a+b

ans =

ING.METALUGICA
21
4.0000 1.5000
1.5000 6.0000

Multiplicación de matrices
Para multiplicar dos matrices (axb), "a" tiene que tener la misma cantidad columnas
que la cantidad de filas que b. El resultado de la multiplicación será entonces igual a la
cantidad de filas de "a" y tendrá tantas columnas como "b". Dada una matriz A de 3
filas x 3 columnas(3x3) y una matriz B de 3x2; podemos verificar que el producto es
posible y el resultado de la multiplicación será de una matriz de 3x2.
Ejemplos en Matlab:

A=[0.1 0.3 0.3;2 3 9;2 4 1];


>> B=[2 3;1 1;1 10];
>> A*B

ans =

0.8000 3.6000
16.0000 99.0000
9.0000 20.0000

¿Que pasa ahora si le pedimos a Matlab que haga el producto de BxA??

Inversa de una matriz


Dada una matriz A:
Quiero calcular la inversa de dicha matriz:

>> A=[0.1 0.3 0.3;2 3 9;2 4 1];


>> inv(A)

ans =

-15.7143 0.4286 0.8571


7.6190 -0.2381 -0.1429
0.9524 0.0952 -0.1429

ING.METALUGICA
22
Cálculo del determinante
Dada una matriz A, se desea calcular el determinante de dicha matriz.
Código en Matlab:

>> A=[1 2 3;2 3 4;3 4 5]


>> det(A)

ans =

Matriz Transpuesta
Para calcular la traspuesta de una matriz en matlab utilizo el carácter especial
"'".
Ejemplo en Matlab:

>> A=[2 .5;1 3]

A =

2.0000 0.5000
1.0000 3.0000

>> A'

ans =

2.0000 1.0000
0.5000 3.0000

Selección de un componente de una matriz


Por ejemplo selecciono el componente de la fila 1 columna 2.

ING.METALUGICA
23
>> A=[1 10;2 3];
>> A(1,2)

ans =

10

Selección de toda la fila 1:

>> A(1,:)

ans =

1 10

Verificando las dimensiones de una matriz


Utilizo la misma matriz A del ejemplo anterior para trabajar.

>> size(A)

ans =

2 2

Rango de una matriz


Para comprobar el rango el comando que se utiliza es "rank"

A=[1 2 3;2 3 4;3 4 5];


>> rank(A)

ans =

ING.METALUGICA
24
2

Resolución de un sistemas de ecuaciones


Dada la Matriz A y B:

-->A=[2 1 1;3 2 3;1 1 5];B=[-4; 1; -1];


A\B
ans =

- 11.
20.
- 2.

ING.METALUGICA
25
Bibliografía
https://es.mathworks.com/help/matlab/learn_matlab/flow-control.html

https://es.mathworks.com/help/matlab/learn_matlab/desktop.html

http://canal.etsin.upm.es/web_cnum/main_matlab

http://www.mat.ucm.es/~jair/matlab/notas.htm

ING.METALUGICA
26

También podría gustarte