FUNDAMENTOS DE MATLAB

Transcripción

FUNDAMENTOS DE MATLAB
FUNDAMENTOS DE
MATLAB
MATrix LABoratory
Características básicas
►
Lenguaje de programación propio, optimizado para trabajar con
matrices.
►
Escalares (reales y complejos), cadenas de caracteres y
estructuras más complejas.
►
Gráficos en 2D y 3D.
►
Código básico y librerías especializadas (toolboxes).
Usos típicos:
►
Cálculos matemáticos
Desarrollo de algoritmos
Adquisición de datos
Modelación y simulación
Análisis de datos, exploración y visualización
Gráficos científicos y de ingeniería
Desarrollo de aplicaciones, incluyendo interfaz gráfica de
usuario
Entorno de trabajo (1)
Command Window - los comandos se escriben a
continuación del prompt (>>).
► Current Directory - muestra los ficheros del directorio
activo.
► Workspace - contiene información sobre todas las
variables definidas en la sesión de trabajo. Permite ver y
modificar las matrices con las que se esté trabajando.
► Command History - muestra los últimos comandos
ejecutados en la ventana de comandos.
► Start - acceso a los principales módulos de MATLAB.
► Help – Proporciona información y ayuda. Línea de
comandos (help, lookfor), ventana Help, manuales PDF.
► Editor – Editor de ficheros y depurador de errores.
(debugger).
►
Entorno de trabajo (2)
► Los
programas de MATLAB se encuentran en
archivos o ficheros con la extensión *.m (texto
ASCII).
► Los ficheros *.m se ejecutan tecleando su nombre en
la línea de comandos (sin la extensión).
► Para que un fichero *.m pueda ser ejecutado debe
estar en el directorio actual (dir) o en un directorio
indicado en el path.
► Al iniciar MATLAB se ejecuta el fichero llamado
startup.m (arranque personalizado).
► MATLAB calcula siempre con doble precisión, e.d.,
guardando cada dato en 8 bytes.
Formatos numéricos
►
Los formatos numéricos con los que MATLAB muestra los
resultados son:
short punto fijo con 4 cifras decimales (default)
short e notación científica con 4 decimales
short g notación científica o decimal, dependiendo del
valor
long
punto fijo con 15 decimales
hex
cifras hexadecimales
bank números con dos cifras decimales
long e notación científica con 15 decimales
long g notación científica o decimal, dependiendo del
valor
rational
expresa los números racionales como
cocientes de enteros
Programación y comandos (1)
►
►
►
►
►
►
►
►
►
Matlab no tiene en cuenta los espacios.
Matlab distingue entre mayúsculas y minúsculas.
El punto y coma al final de una expresión indica que se calcula
su resultado pero no se muestra en la pantalla.
Si una expresión es demasiado larga para que quepa en una
línea, se colocan tres puntos (…) seguido de enter y esto indica
que la expresión continúa en la siguiente línea.
En una línea de comandos se pueden escribir varias
instrucciones separadas por comas.
Se pueden recuperar comandos anteriores con el Command
History o con las flechas.
Se usa el caracter % al inicio de un comentario.
Los nombres de variables deben empezar siempre con una letra.
No hace falta declarar las variables a utilizar.
Programación y comandos (2)
► Al
salir del programa todo el contenido de la memoria
se borra automáticamente. Para guardar una sesión
(excepto gráficos) o matrices en forma selectiva se
usa save. El comando save sin argumentos guarda
todas las variables de la sesión en un archivo binario
llamado matlab.mat en el directorio actual. Los
argumentos que se pueden usar son: nombre de
archivo, variables a guardar, formato.
► Para
recuperar el estado de la sesión o las variables
guardadas se usa load.
►
Operadores aritméticos





►
Operadores relacionales




►
Suma : a + b
Resta : a - b
Multiplicación: a * b
División : a / b
Potencia : a ^ b
<, >
<=, >=
==
~=
menor, mayor que
menor o igual que, mayor o igual que
igual que
distinto que
Operadores lógicos




&, && and
| , || or
~
negación lógica
(help ops)
► Operadores










Matriciales
Suma : +
Resta : –
Multiplicación : *
Transpuesta : '
Potencia:
^
División-izquierda : \ (equivale a pre-multiplicar
por la inversa de la matriz, se usa en la resolución
de sistemas de ecuaciones lineales Ax=b, cuya
solución estaría dada por: x = A \b)
División-derecha : /
Producto elemento a elemento : .*
División elemento a elemento : ./ y .\
Elevar a una potencia elemento a elemento : .^
Construcción de Vectores y Matrices
(no es necesario declararlas o establecer de antemano su tamaño;
todos los números en Matlab son arreglos)
Vectores fila y columna
>> x = [3, -1, 4, 7, -2]; asignación directa de un vector fila
>> x = [3 -1 4 7 -2]; los elementos pueden separarse con espacios o comas
>> x(2) = 5; asignación de uno de sus componentes
>> t = [3; -1; 4];
asignación directa de un vector columna (los elementos
pueden separarse con enter)
>> t = x’;
mediante la transpuesta de un vector fila
>> y = [3, x, -6]; asignación usando otro vector
>> y = 2:10;
asignación de valores con incremento 1
>> y = 1:0.1:3; con incremento diferente de 1 (en este
caso el
incremento es de 0.1)
>> y = 2*x; asignación de valores mediante una operación escalar
>> y = sin(x);
o mediante una función
Matrices
Los elementos de una misma fila se separan con espacios o comas y las
filas se separan con enter o con caracteres punto y coma (;).
>> A = [2 -3; 5 1]; asignación directa de una matriz 2x2
>> A(2,1)
manejo de uno de sus componentes (el primer
índice indica la fila y el segundo la columna)
>> A1 = [2,-3; 5,1; 0,7] una matriz 3x2
>> A2 = [x; x]; una matriz 2x5
>> b = [5, 6];
vector fila de 2 columnas
>> C = [A; b]; C es una matriz 3x2
>> D = [A, b’]; D es una matriz aumentada 2x3
>> x = C(1, :); asigna al vector x la primera fila de C
>> y = C(:, 1); asigna al vector y la primera columna de C
>> B = A1'; asigna a la matriz B la traspuesta de A1
>> E = A1 * B; resulta una matriz simétrica
>> F = inv(A)
calcula la inversa de A
►
Las matrices se almacenan por columnas por lo que puede
accederse a cualquier elemento de una matriz con un sólo
subíndice.
►
Se puede trabajar con matrices de más de dos
dimensiones: A(i,j,k). Ejemplo: A = randn(2,3,2).
►
Para realizar operaciones con matrices se debe tener en
cuenta su tamaño.
►
Números muy grandes o infinito se representan como inf.
►
Los resultados que no están definidos como números (Not
a Number) se representan como NaN. Los NaN se
propagan al realizar con ellos cualquier operación
aritmética (para evitarlo utilizar nanmean, nanstd, etc).
►
Matrices especiales
eye(n)
eye(m,n)
matriz identidad de tamaño nxn
matriz de tamaño mxn con 1’s en la diagonal y ceros
en cualquier otra entrada
zeros(n)
matriz de ceros de tamaño nxn
zeros(m,n) ídem de tamaño mxn
ones(m,n) matriz de unos de tamaño mxn
linspace(x1,x2,n) genera un vector con n valores igualmente
espaciados entre x1 y x2
rand(m,n)
matriz de números aleatorios entre 0 y 1, con
distribución uniforme, de tamaño mxn
randn(m,n) matriz de números aleatorios, con distribución normal
de valor medio 0 y varianza 1, de tamaño mxn
magic(n)
matriz nxn construida con los enteros de 1 a n^2 con
la propiedad de que todas las filas, columnas y
diagonal suman lo mismo
Ejercicios
• Ejercicio 1
– Crear una matriz de ceros de 6 x 6
– Asignar el número 1 a todos los elementos del 4 to renglón
– Asignar el número 1 en la 3er y 4ta columnas
•
Ejercicio 2
–
–
–
–
–
–
[
6 43 2 11 87
A= 12 6 34 0 5
34 18 7 41 9
]
Crear un vector va que contenga los elementos del segundo renglón de A
Crear un vector vb que contenga los elementos de la cuarta columna de A
Crear un vector vc que contenga los elementos del 1er y 2do renglones de A
Crear un vector vd que contenga los elementos de la 2da y 5ta columnas de A
Define una matriz E que contenga los elementos del 2 do y 3er renglones de A
Define una matriz F que contenga los elementos de los dos primeros
renglones de A y de la 2da a la 4ta columna de A

Documentos relacionados