Tutorial Básico de MATLAB
Tutorial Básico de MATLAB
Tutorial de MATLAB: Capítulo 1
CAPITULO I
Introduction
MATLAB es la abreviación de MATRIX LABORATORY y es un programa de cálculo numérico
que utiliza matrices como objetos de base. Estas matrices pueden ser también vectores
(línea o columna) , así como escalares. Cabe mencionar que MATLAB puede manipular
números reales y complejos.
Lo que hace a MATLAB tan popular, es la facilidad con la cual uno puede programar métodos
numéricos, probarlos y visualizarlos de forma gráfica. Es un programa destinado a la
experimentación numérica. Si en un momento dado, uno debe resolver un problema de gran
dimensión el cual requiera un importante poder de cálculo, es mejor utilizar programas muy
específicos o programar uno mismo los métodos numéricos en lenguajes como C, C++,
Fortran o Java.
Interface
Los botones en la parte superior de la ventana permiten acceder a ciertas funcionalidades de
MATLAB sobre Windows (editor de scripts, gestión de variables, gestion de caminos de
acceso). En la parte de derecha se encuentra la ventana de comandos (Command Windows)
en la cual se pueden escribir instrucciones y leer resultados. En la parte izquierda superior,
encontramos dos ventanas. En la primera (Current Directory) se muestra el directorio o
directorios sobre los cuales estamos trabajando. En la segunda (Workspace) se muestran las
variables con las que se esta trabajando.
1
Tutorial de MATLAB: Capítulo 1
Crear una Matriz
Sobre el Workspace, una matriz A puede ser creada explícitamente:
>> A = [1 2 3 ; 4 5 6]
A =
1 2 3
4 5 6
La matriz es delimitada por corchetes, los elementos se escriben línea por línea, con un
punto y coma para separar las líneas de la matriz. De la mima manera es posible crear un
vector línea:
>> B = [1 5]
B =
1 5
o un vector columna:
>> C = [3 ; 4 ; 5]
C =
3
4
5
Otra manera de crear un vector columna es de lo transponer con el operador de
transposición: el apostrofe ‘.
>> D = [1 2]'
D =
1
2
Los escalares se declaran indiferentemente, ya sea como matrices 1*1 o directamente como
escalares :
>> E = [5]
E =
5
>> F = 6
F =
6
Es posible acceder a un elemento particular de una matriz, especificando entre paréntesis y
separados por una coma, la línea y la columna del elemento deseado.
>> A(2,3)
ans =
6
Para los vectores columna (resp. Línea) , no es necesario especificar la columna (resp. Línea):
2
Tutorial de MATLAB: Capítulo 1
>> C(2,1)
ans =
4
o de manera equivalente:
>> C(2)
ans =
4
Para conocer el significado de la palabra ans, es posible escribir
>> help ans
ANS Most recent answer.
ANS is the variable created automatically when expressions
are not assigned to anything else. ANSwer.
MATLAB posee una seria de funciones que permiten crear matrices especiales, trate con la
siguiente instrucción:
>> help elmat
Atención: MATLAB considera a las variables definidas por letras mayúsculas y minúsculas
como variables diferentes. A no es equivalente a a. Por ejemplo, se puede definir:
>> a = 2
a =
2
La variable A existe :
>> A
A =
1 2 3
4 5 6
Modificar una matriz
Es posible modificar un elemento de una matriz:
>> A(1,3) = 2
A =
1 2 2
4 5 6
Si se modifica un elemento inexistente de una matriz, la matriz es extendida hasta que ese
elemento exista:
>> A(3,3) = 1 A =
1 2 2
4 5 6
0 0 1
3
Tutorial de MATLAB: Capítulo 1
Gestión de la memoria
La facilidad con la cual uno puede crear variables en MATLAB hace que la memoria pueda ser
rápidamente congestionada con una multitud de variables que pueden ya no ser utilizadas
en el proceso considerado. El comando who da la lista de variables del espacio de trabajo. El
comando whos proporciona la misma lista pero con informaciones sobre la tipo y el tamaño
de cada variable.
>> who
Your variables are:
A C E a
B D F
>> whos
Name Size Bytes Class
A 3x3 72 double array
B 1x2 16 double array
C 3x1 24 double array
D 2x1 16 double array
E 1x1 8 double array
F 1x1 8 double array
a 1x1 8 double array
Grand total is 19 elements using 152 bytes
Para borrar una variable y liberar espacio de memoria, es necesario utilizar el comando:
clear nombre_de_la_variable
>> clear F
>> who
Your variables are:
A C E
B D a
El comando clear all elimina todas la variables del espacio de trabajo. No es posible de
revertir (undo) el comando clear.
Mostrar
Cuando no se desea que el resultado de un comando sea mostrado, es necesario
simplemente escribir un punto y coma al final de este:
>> T = [1 2 3];
Ningún resultado es mostrado, sin embargo el comando ha sido ejecutado correctamente:
>> T
T =
1 2 3
4
Tutorial de MATLAB: Capítulo 1
>> ti = sin(a)
ti =
0.9093
Nota : Las funciones trigonométricas trabajan en radianes.
Valores especiales en MATLAB :
Certaines valeurs particulières sont définies dans Matlab:
• pi : es la constante pi, con un máximo d cifras después del punto.
• i ou j : unidad imaginaria. Si i y j han sido anteriormente utilizadas en el programa
como otras variables, estas constantes son inaccesibles. También es posible utilizar
sqrt(-1).
Se obtiene un numéro complejo !
• Inf : El infinito. Es el resultado regresado por MATLAB cuando un calculo obtiene
como resultado un valor infinito.
• NaN : Not a Number. Cuando el resultado de un cálculo es indeterminado.
>> b = -3/0
Warning: Divide by zero.
b = -Inf
>> c = 0/0
Warning: Divide by zero.
c = NaN
Operación con matrices
Las operaciones +, ‐ ,*, / existen también para las matrices. No existen ambigüedades para
la adición y la substracción, sin embargo es necesario tener cuidado con las operaciones
de multiplicación, división, potencia, etc..
5
Tutorial de MATLAB: Capítulo 1
Ejemplos:
>> a*A
ans =
2 4 4
8 10 12
0 0 2
>> A*A
ans =
9 12 16
24 33 44
0 0 1
>> A*C
ans =
21
62
5
>> T*A
ans =
9 12 17
>> A*T
??? Error using ==> *
Inner matrix dimensions must agree.
El signo * es el operador de producto, ya sea matricial o escalar. Si uno desea multiplicar
elemento a elemento de dos matrices, es necesario utilizar el operador .*.
>> C .* [2; 1; 2]
ans =
6
4
10
Esto es lo mismo para el operador ^. Si a A^2 significa A*A en el sentido matricial, A.^2, significa
que tomamos cada elemento de A y lo elevamos al cuadrado.
Solución de sistemas lineales
Una manera de resolver un sistema lineal de la forma A*x=c, es calcular la inversa de A:
>> x = inv(A)*C
x =
-5.6667
-0.6667
5.0000
6
Tutorial de MATLAB: Capítulo 1
Esta manera de hacerlo puede ser muy imprecisa si la matriz A es mal condicionada. Por otra
parte, calcular la inversa de una matriz demanda muchas operaciones innecesarias para
resolver el sistema. Una mejor manera de proceder es utilizar el operador de división a la
izquierda de MATLAB (\ ). MATLAB utiliza un conjunto de métodos mejor apropiados para
resolver este tipo de sistemas (Por ejemplo la factorización LU de la matriz, entonces
resolver dos sistemas triangulares).
>>x=A\C
x=
-5.6667
-0.6667
5.0000
Concatenación y extracción
Es posible crear nuevas matrices concatenando matrices ya existentes. La sintaxis es similar
a la utilizada para la creación de matrices.
>> [A C;1 T]
ans =
1 2 2 3
4 5 6 4
0 0 1 5
1 1 2 3
Si escribimos A(1,3) se extraerá una submatriz de dimensión 1X1. Esta sintaxis se puede
extender a submatrices de mayor tamaño. En el siguiente ejemplo, se extrae la submatriz
compuesta de la segunda línea de A y des las columnas 1 y 3.
En el siguiente se crea una matriz que es constituida de una permutación de la segunda línea
de A.
>>A(2,[312])
ans=
6 4 5
Este ejemplo muestra la creación de una matriz A, de la cual se permuta las líneas y
columnas.
>> A([1 3 2],[3 1 2])
ans =
2 1 2
1 0 0
6 4 5
7
Tutorial de MATLAB: Capítulo 1
Generar una secuencia de números
El operador ":" (colon) es un operador que permite generar serie de números. El es muy útil
para extraer sub‐matrices, generar lazos de iteración (ver la parte de estructuras de control).
>> a = -2:3
a =
-2 -1 0 1 2 3
>> b = [-2:3]
b =
-2 -1 0 1 2 3
>> c = [-2:3]'
c =
-2
-1
0
1
2
3
Si no es posible obtener una serie de números, se obtendrá un mensaje de error.
>> 3:-1
ans =
Empty matrix: 1-by-0
Otros ejemplos de la generación de esta serie de números son:
>> a = fliplr([-2:3])
a =
3 2 1 0 -1 -2
o de manera más simple :
>> a = 3:-1:-2
a =
3 2 1 0 -1 -2
La notación "a : h : b" significa: todos los números de a a b por pasos de h. El paso h puede
ser positivo o negativo. Para generar todos los pares de 4 a 20, escribimos
>> b = 4:2:20
b =
4 6 8 10 12 14 16 18 20
Seleccionar una sub‐matriz
Sea la matriz A:
8
Tutorial de MATLAB: Capítulo 1
9 9 9 9
0 0 0 0
Para extraer la sub‐matriz 3*3 compuesta de las 3 primeras líneas y columnas, escribimos:
>> B = A(1:3,1:3)
B =
1 2 3
5 6 7
9 9 9
Para extraer la última columna :
>> A(1:4,4)
ans =
4
8
9
0
Existe un atajo que permite especificar de manera rápida todas las líneas o columnas de una
matriz:
>> A(:,2)
ans =
2
6
9
0
Un medio simple para visualizar la grafica de una función de R en R es evaluar esta función
para un cierto número de puntos y unir estos untos por segmentos rectos. A modo de
ejemplo veamos la función sin (x) para x que pertenece al intervalo de 0 a 12.
>> x = [0:0.05:12];
>> y = sin(x);
>> plot(x,y)
En la primera línea, generamos valores de 0 a 12, con espacios de 0.05. Entonces evaluamos
la función seno en esos puntos. Finalmente, unimos estos puntos por medio de líneas rectas.
El resultado es:
9
Tutorial de MATLAB: Capítulo 1
Nota
Para ver más sobre la función plot escriba:
10