Publicado el 29 de Octubre del 2020
810 visualizaciones desde el 29 de Octubre del 2020
520,9 KB
54 paginas
Creado hace 8a (20/01/2016)
1
Una introducción a MATLAB
PRÁCTICA NÚMERO 1
Introducción al MATLAB
Matrices y vectores
Los llamados vectores permiten almacenar colecciones de datos. Por
ejemplo
»a=[3 2 1]
define un vector fila denominado a que consta de 3 componentes. En
cada una de las componentes se almacena un número. Si hubieramos
deseado introducir un vector columna cada uno de los números tendría
que estar separado por ;
»b=[3; 2; 1]
El producto de matrices se denota por *
»C=a*b
y se comprueba que no es conmutativo
»d=b*a
En cualquier momento podemos emplear los vecores ya definidos. Por
ejemplo
»sqrt(a)
calcula la raíz cuadrada de los elementos del vector a.
Si queremos hacer operaciones aritmética +,-, * ,/ componente a
componente debemos preceder el símbolo por un punto .
»a./2
dividirá las componentes del vector a por 2.
Si se quiere referir a una componente de un vector determinado se indica
con nombrevector(posicion). Por ejemplo si queremos cambiar el valor de
la primera componente del vector a al valor 10, escribiremos:
1
|2|
CAPÍTULO 1. UNA INTRODUCCIÓN A MATLAB
»a(1)=10
Una forma de crear rápidamente un vector es con la instrucción
a:incremento:b. Genera un vector con los números comprendidos en [a, b],
iniciándose en a y espaciados la cantidad incremento. Por ejemplo
»x=0:0.1:1
Genera el vector x = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1]
Una matriz es un vector de vectores. Por ejemplo si escribimos
»B=[1 2 3; 4 5 6; 7 8 9]
Introducimos una matriz llamada B. A esta matriz (vector de vectores) le
podemos añadir nuevos vectores filas o columna. Por ejemplo si quisiéramos
añadir el vector columna b a la matriz B lo haríamos con la sentencia:
»D=[B ,b]
Si queremos añadir una nueva fila a la matriz B escribiríamos la
sentencia:
»E=[B;a]
Notar que en las dos expresiones anteriores podíamos usar el nombre del
vector o su definición explícita. Notar además que b es un vector columna y
que a es un vector fila.
Visualización 2D
En esta sección analizaremos los gráficos en 2 dimensiones. Los gráficos
en dos dimensiones más básicos consisten en unir consecutivamente un
conjunto de puntos (xi, yi). Consideremos el siguiente ejemplo
»x=[1.5 2.2 3.3 4.4 5.8 6.7 7.3 8.3];
»y=[2.5 3.4 4.3 4.4 6.8 3.7 2.3 1.3];
la sentencia siguiente dibuja consecutivamente los anteriores puntos
(x(i),y(i))
»plot (x,y)
Se puede especificar un formato a las gráficas mediante la sentencia:
»plot(x,y,’caracteres’)
’caracteres’ es un string que contiene las especificaciones del color, del
tipo de marca y del tipo de línea del dibujo. Por ejemplo
»plot(x,y,’r+-’) dibujaría la gráfica en rojo, empleando como marcas
el símbolo + y haciendo un trazo discontinuo. Estos argumentos se puede
escribir en cualquier orden.
Además si suprimimos la indicación del tipo de línea plot(x,y,’r+’) no
dibujaría la línea entre los puntos.
También se pude poner varias gráficas a la vez. Por ejemplo:
»plot(x,y,’r+-’,a,b,’r-’)
dibujaría dos gráficas, la asociada a (xi, yi) y a (ai, bi).
El comando plot también acepta como entrada una matriz en lugar de un
vector. Si denotamos X e Y dos matrices, las siguient expresión plot(x,Y)
dibujaría simultáneamente todas las columnas de Y respecto a la variable
x. Si hubieramos escrito plot(X,Y) dibujaría todas las columnas de X
con todas las columnas de Y. Si solamente recibe un argumento plot(Y)
dibujaría todos los vectores respecto a los índices, esto es, representaría una
sucesión.
|3|
Estilo de línea
línea solida
línea discontinua
línea punteada
-
-
:
-. línea punto
Marca
o círculo
* asterísco
. punto
+ más
x cruz
s cuadrado
d diamante
ˆ triángulo superior
v triángulo inferior
> triángulo derecha
< triángulo izquierda
p estrella 5 puntas
h estrella 6 puntas
Color
r rojo
g verde
b azul
c cian
m magneta
y amarillo
k negro
w blanco
Figura 1.1: Opciones del comando plot
Los mandatos LineWidth permite cambiar el grosor de la líneas, con
MarkerSize el tamaño, MarkerEdgeColor el contorno de las marcas y
MarkerFaceColor el relleno de la marca.
plot(x,y,’LineWidth’,3,’MarkerSize’,5, ’MarkerFaceColor’,’g’)
La tabla 1.2 recoge ciertas funciones para gestionar los ejes y anotaciones
de las figuras. Las tabla 1.3 muestra algunos comandos para gestionar las
ventanas de dibujo.
Hasta aquí se ha visto el mandato plot pero existen muchas otras
funciones para realizar gráficos en 2 dimensiones. La tabla 1.4 recoge alguna
de estas funciones:
Se puede hacer varios dibujos en la misma figura. Cada uno de estos
dibujos puede realizarse con una función de la tabla 1.4. Esta posibilidad es
mediante el comando
»subplot(m,n,p)
se particiona la figura de dibujo en una matriz m × n y mediante el
parámetro p se elige una de las m ∗ n celdillas. Por ejemplo subplot(4,2,7)
se refiera a la gráfica de la posición (4, 1). Si escribimos:
»subplot(2,1,1), fplot(’sin(x)’,[0, 2*pi],’-’)
»subplot(2,1,2), fplot(’cos(x)’,[0, 2*pi],’-’)
Alternativavemente a la función fplot se puede dibujar funciones
elementales a partir de la construcción de una tabla de datos. Por ejemplo
intervalor [−π, π]
si quisieramos dibujar la función y = cos(x) en el
escribiríamos:
»x=-pi:0.1:pi, ycos=cos(x), plot(x,ycos)
Las instrucciones vienen separadas por una coma. La primera instrucción
crea un vector denominado x que cuya primera componente es −π y el resto
de coordenadas van aumentando su valor en 0.1 unidades hasta sobrepasar
el valor de π. La segunda instrucción crea el vector ycos que contiene los
|4|
CAPÍTULO 1. UNA INTRODUCCIÓN A MATLAB
axis ([xmin xmax y min ymax])
axis auto
axis equal
axis on/off
grid on/off
axis square
axis tight
xlim([xmin xmax])
ylim([ymin ymax])
box off
legend(’expr1’,..,’exprn’,n)
xlabel(’texto x’,opciones)
ylabel(’texto y’,opciones)
title(’texto figura’,opciones)
text(x,y,’texto’,opciones)
límites de los ejes x e y
límites de los ejes por defecto
estandariza las unidades de los ejes x-
, y- z-
inserta/elimina los ejes
inserta/elimina una rejilla en la figura
hace una caja cuadrada de ejes
fija los ejes relativos a un conjunto de
datos
fija los límites del eje x-
fija los límites del eje y-
elimina el cuadrado que enmarca la
figura
leyenda
n
{−1, 0, 1, 2, 3, 4} cambia posición?
escribe el titulo eje x- con opciones
escribe el titulo eje y- con opciones
escribe el titulo de la figura con opcio-
nes
inserta en la posición (x,y) el texto con
opciones
figura.
=
de
la
Figura 1.2: Ejes y anotaciones
hold on
hold off
clf
close
close all
figure(n)
incluye todos los dibujos en una figura
deriva cada comando plot a figuras
diferentes
limpia la figura actual
cierra la figura
cierra todas las figuras
crea la figura n
Figura 1.3: Algunos comandos para gestionar las ventanas de figuras 2D
valores de la función coseno evaluada componente a componente en el vector
x. Finalmente dibujamos la taba de datos x,ycos.
Help
Una forma rápida de consultar las posibilidades y sintaxis de una deter-
minada función de MATLAB es utilizar la función help help NombreFuncion
(ejemplo: help plot). También se puede utilizar la interfaz gráfica para buscar
ayuda entrando en Help-Product Help.
M-Ficheros
La forma natural de trabajar con Matlab es a través de los llamados M-
ficheros. Estos ficheros contienen un conjunto de instrucciones Matlab que
se pueden invocar su ejecución desde la línea de comandos. Trabajar con
este tipo de ficheros ahorra tiempo en el desarrollo del programa definitivo,
|5|
plot
loglog
semilogx Dibujo 2D con escala logarítmica eje
Dibujo básico 2D
Dibujo 2D con escalas logarítmicas
semilogy Dibujo 2D con escala logarítmica eje
x-
y-
semilogx Dibujo 2D con escala logarítmica eje
plotyy
polar
fplot
ezplot
ezpolar
fill
area
bar
barh
hist
pie
scatter
x-
Dibujo 2D con ejes y- a la izquierda y
derecha
Dibujo 2D en coordenadas polares
Dibuja automáticamente una función
Versión sencilla de fplot
Versión sencilla de polar
Rellena un polígono
Rellena el área de una gráfica
Gráfico de barras
Gráfico de barras horizontal
Histograma
Gráfico de tarta
Gráfico de puntos
Figura 1.4: Funciones para hacer gráficos 2D
permitiendo introducir modificaciones y ejecutarlas instántaneamente. Ade-
más permiten grabar exactamente lo que se hizo y poderlo reproducir en otra
ocasión, por uno mismo o por otros compañeros. Además se pueden crear
utilidades que son reutilizables. Este tipo de ficheros son de dos tipos:
- Scripts. Son un conjunto de instrucciones que no necesitan unos datos
de entrada y operan con las variables allí contenidas.
- Funciones. En estos ficheros se introducen/devuelven datos. El resto
de datos son de uso local (interno a la función) y no son accesibles
desde el resto de los M-ficheros.
Los M-ficheros se pueden crear con cualquier editor de texto. Es
recomendable el propio editor de Matlab. Una vez creado para poderse usar
debe estar en una lista de directorios de búsqueda. Con el comando path se
puede ver el actual directorio de búsqueda. Desde la ventana se puede elegir
un directorio de búsqueda.
A continuación listamos un pequeño ejemplo de M-fichero (script) para
dibujar la función y = sen(x) e y = cos(x) en el intervalo [−π, π] y dibujadas
en dos gráficas separadas.
|6|
CAPÍTULO 1. UNA INTRODUCCIÓN A MATLAB
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
E j e m p l o
Este fichero es un script que dibuja la funcion
seno y coseno en el intervalo [-pi,pi]
d e
M f i l e
% El signo % (porcentaje) permite introducir comentarios
% Generamos valores de la variable independiente x
% en el intervalo [-pi,pi] espaciados 0.1 unidades
x=-pi:0.01:pi;
% calculamos las imagenes del seno y coseno y lo almacenamos en el
% vector yseno e ycoseno
yseno=sin(x);
ycoseno=cos(x);
% Dibujamos dos figuras.
% seno y la otra de la función coseno. Las gráficas se dibujan en
% negro, con un grosor de 2 unidades y los puntos unidos.
subplot(1,2,1),plot(x,yseno,’k-’,’LineWidth’,2)
subplot(1,2,2),plot(x,ycoseno,’k-’,’LineWidth’,2)
Una contiene la gráfica de la funci
Comentarios de: Una introducción a MATLAB (0)
No hay comentarios