Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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
11 12 13
14 15 16
17 18 20
sin(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
1 4 9
16 25 36
49 64 100
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
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
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
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
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.
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
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.
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)
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.
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 =
Iteration #5
sampleMean =
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
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 .
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:
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:
ans =
0.8000 3.6000
16.0000 99.0000
9.0000 20.0000
ans =
ING.METALUGICA
22
Cálculo del determinante
Dada una matriz A, se desea calcular el determinante de dicha matriz.
Código en Matlab:
ans =
Matriz Transpuesta
Para calcular la traspuesta de una matriz en matlab utilizo el carácter especial
"'".
Ejemplo en Matlab:
A =
2.0000 0.5000
1.0000 3.0000
>> A'
ans =
2.0000 1.0000
0.5000 3.0000
ING.METALUGICA
23
>> A=[1 10;2 3];
>> A(1,2)
ans =
10
>> A(1,:)
ans =
1 10
>> size(A)
ans =
2 2
ans =
ING.METALUGICA
24
2
- 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