Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
ARTICULOS CIENTIFICOS
DICTADO POR:
Ing. Luis F. Tipan,MSc.
INTRODUCCION
1. Manejo elemental de Matlab.
1.1. Interfaz de usuario. Variables.
1.2. Vectores y Matrices.
2. Gráficas 2D.
2.1. Funciones de la forma y = f(x)
2.2. Curvas en paramétricas.
2.3. Curvas en polares.
2.4. Cambios de coordenadas polares-cartesianas.
3. Gráficas 3D.
3.1. Curvas en el espacio.
INTRODUCCION
>>t=linspace(0,2*pi,20);
>>quiver(cos(t),sin(t),-sin(t),cos(t)),axis square
Produce la grafica de la figura 8.
La sintaxis del comando es
>>quiver(r(t),r’(t)).
El numero de vectores que aparecen en este caso es 20. Si el numero
de puntos que se indica con el comando linspace es demasiado grande,
puede que no se aprecie con claridad la grafica, ya que ´este sera el
numero de vectores que se dibujen.
Deber N-2. Dibujar las curvas en parametricas siguientes; en los
apartados a) y b), dibujar ademas los vectores velocidad, utilizando el
comando quiver:
2.3. Curvas en polares
Una curva en coordenadas polares es la imagen de la función
Para dibujar algunos vectores velocidad sobre la curva hay que utilizar
el comando quiver3(vector posición, vector velocidad).
Vamos a ir viendo los que se pueden hacer con MatLab, que son:
diagramas de Sectores, diagramas de Pareto, diagramas de barras e
histogramas.
4.1. Diagramas de sectores
Resultan útiles para representar datos de tipo cualitativo, en los que
tenemos varias opciones, el diagrama de sectores permite compararlas
en un círculo con sectores cuyo ángulo es directamente proporcional al
porcentaje de cada opción.
Ejemplo 4.1
Los resultados de las elecciones generales del 17 de marzo de 2000 a la
asamblea nacional fueron los siguientes:
Denominación Política Número de Escaños
Partido Popular 186
Partido socialista Obrero Ecuatoriano 124
Convergencia y Unión 15
Izquierda Unida 8
Partido Nacionalista de Vida 7
Otros 12
Total 350
Para dibujar un diagrama de sectores de los resultados de las
elecciones, procedemos como sigue. Introducimos los datos en un
vector
>>x=[183 125 15 8 7 12]
x=
183 125 15 8 7 12
Y ahora, dibujamos el diagrama. Se puede poner una leyenda que nos
indique qué sector corresponde a cada partido político. Como se puede
observar en el grafico (figura 20), MatLab calcula automáticamente los
porcentajes correspondientes y los pone junto a su sector
>>pie(x),legend(’PP’, ’PSOE’,’CiU’,’IU’,’PN’,’Otros’)
(Nota: si la leyenda no sale en el lugar deseado, se puede mover
utilizando el botón izquierdo del ratón y colocándola en el lugar
adecuado.)
>>pie(x),legend(’PP’, ’PSOE’,’CiU’,’IU’,’PNV’,’Otros’)
(Nota: si la leyenda no sale en el lugar deseado, se puede mover
utilizando el botón izquierdo del ratón y colocándola en el lugar
adecuado.)
Con el comando pie3 se obtiene también un diagrama de sectores,
pero en versión tridimensional (ver figura 21).
Tanto para el comando pie, como para el comando pie3 existe la
posibilidad de separar uno o más sectores para destacarlos con
respecto de los demás. Por ejemplo, si queremos separar los sectores
correspondientes a los dos primeros datos
>>pie3(x,[1 1 0 0 0 0])
El vector que se pone a continuación de x
debe tener la misma longitud que el x,
los unos y los ceros indican,
respectivamente, los sectores que queremos
separar y los que no.
4.2. Diagramas de Pareto
Vamos a utilizar el ejemplo 4.1, pero ligeramente modificado:
Denominación Política Número de Escaños
Partido Popular 186
Partido socialista Obrero Ecuatoriano 124
Otros 42
Total 350
El diagrama de Pareto que produce MatLab constará de barras cuyas alturas son el
número de escaños, ordenadas en forma decreciente y sobre las barras, un
polígono con las frecuencias acumuladas de los escaños. Además, en el eje vertical
derecho aparece una escala de porcentajes.
Para generarlo, escribimos
>>x=[183 125 42]
x=
183 125 42
Para generarlo, escribimos
>>x=[183 125 42]
x=
183 125 42
>>pareto(x),ylabel(’Número de Escaños’) Y obtenemos el grafico de la
figura 22.
Este comando tiene un pequeño problema y es que si la frecuencia de
uno de los datos es pequeña en comparación con las otras, puede no
aparecer en el dibujo. Por ejemplo, si hubiésemos utilizado los datos tal
y como aparecían en el ejemplo 4.1, algunas de las barras
correspondientes a los partidos políticos que habían obtenido un
número bajo de escaños no habrían aparecido.
4.3. Diagramas de barras
Existen varias posibilidades para representar diagramas de barras.
Supongamos que queremos representar los siguientes datos en un
diagrama de barras:
Introducimos los datos en un vector
>>x=[10 2 3 5 18 20 15 ];
Y ahora usamos los comandos bar, barh, bar3 y bar3h para generar los
graficos. (Usando el comando subplot podemos conseguir que
aparezcan todos en la misma figura.)
>>subplot(2,2,1),bar(x),title(’Barras Verticales’)
>>subplot(2,2,2),barh(x),title(’Barras Horizontales’)
>>subplot(2,2,3),bar3(x),title(’Barras Verticales 3D’)
>>subplot(2,2,4),bar3h(x),title(’Barras Horizontales 3D’)
Hay que observar que las graficas 3D se pueden modificar utilizando el
comando rotate3d descrito en las secciones anteriores.
Los datos pueden estar agrupados, en este caso, las ordenes anteriores
los dibujan también agrupados de manera que resulte fácil compararlos.
Veamos el siguiente ejemplo:
>>x=[1 2 3;4 3 6; 10 9 8; 4 2 7;12 10 7];
Ahora, utilizando los mismos comandos que antes, obtenemos los
graficos de la figura 24.
Y por último, también se pueden agrupar en 3D, de forma diferente a la
anterior, con la orden bar3(x,’group’) y se puede hacer que aparezcan las
barras apiladas con bar3(x,’stack’) (ver figura 25).
4.4. Histogramas
Para generar histogramas se utiliza el comando hist. Por ejemplo,
generamos 1000 números aleatorios siguiendo la normal N(0,1)
>>x=randn(1000,1);
Con la orden hist(x), obtenemos (figura 26) un histograma en el que los
datos aparecen agrupados en 10 intervalos. Si queremos que aparezcan
más o menos intervalos, habrá que indicarlo con >>hist(x,N), donde N es
el número de intervalos.
IMPORTAR DATOS DE EXCEL A MATLAB
MATLAB es un software comúnmente utilizado para el análisis de datos
experimentales que pueden provenir de distintas fuentes, incluidos otros
programas. La forma de procesar estos datos externos es importarlos a
MATLAB.
De forma análoga, los datos calculados por MATLAB pueden ser transferidos
o exportados a otras aplicaciones. Aunque existen distintos tipos de datos
(números, texto, audio, gráficos e
imágenes).
Veremos exclusivamente cómo importar y exportar datos numéricos, que es
probablemente el tipo de datos más comúnmente usado en este tipo de
transferencias de
información. Para otros tipos de datos puede consultarse la ayuda de
MATLAB.
La importación se puede llevar a cabo mediante comandos o utilizando
un Asistente de Importación de Datos ( Import Wizard).
Los comandos son útiles cuando el formato de los datos importados es
conocido. MATLAB posee vatios comandos que pueden ser utilizados
para importar distintos tipos de datos.
Los comandos de importación se pueden incluir en un archivo script,
de forma que los datos se importen dentro del programa y antes de
ser procesados por este.
El Asistente de Importación de Datos es útil cuando el formato de los
datos (o el comando utilizado para la importación de datos) no es
conocido. Este asistente determina el formato de los datos y
posteriormente los importa automáticamente
Veamos cómo transferir datos desde/hacia hojas de cálculo Excel. Microsoft
Excel es una herramienta muy utilizada para la gestión de datos, además los
datos que maneja esta aplicación son altamente compatibles con bastantes
tipos de dispositivos y aplicaciones convencionales.
Para llevar a cabo la importación de datos desde Excel se utiliza el comando
xlsread Este comando importa
los datos de una hoja de cálculo Excel a una variable de tipo array . La forma
mas simple de utilizar este comando es:
nombre_variable= xlsread('nombre_archivo')
La ubicación del archivo debe ser el directorio de trabajo actual o bien estar
en la ruta de Búsqueda. Si el archivo Excel importado tiene mas de una hoja
de calculo sólo se importan los datos de la primera de las hojas.
Si un archivo Excel contiene mas de una hoja, se puede utilizar otra
versión del comando xlsread para decidir cual de ellas importar:
nombre_variable=xlsread('nombre_archivo','nombre_hoja')
El nombre de la hoja debe introducirse como cadena.
Otra opción permite importar sólo una región de una hoja de cálculo
determinada a partir de un archivo Excel:
nombre_variable =xlsread('nombre_archivo','nombre_hoja','rango')
El 'rango‘, es una región rectangular de la hoja definida por la dirección
de las celdas con respecto a las esquinas opuestas
(sup-izq:inf-der) p/e 'C2:E5'
El proceso inverso, es decir, la exportación de datos MATLAB a una hoja
Excel, se lleva a cabo mediante el comando xlswrite, cuya sintaxis en su
versión reducida es:
xlswrite ('nombre_archivo',nombre_variable)
06:00:00 15 ............
07:00:00 15.2
08:00:00 15.3 clear all
09:00:00 15.15 close all
10:00:00 16 clc
11:00:00 16.7 dat=xlsread('ejemplo.xls');
12:00:00 17 hora=dat(:,1);
13:00:00 17.5 temp=dat(:,2);
14:00:00 18 plot(hora,temp)
15:00:00 17.4 datetick('x',16)
16:00:00 17.3
17:00:00 17
18:00:00 16.8
19:00:00 15
EJEMPLO DE GRAFICO DE IEEE MAGAZINE
clc; clear all; close all;
warning('off','all');
% Los colores de fondo pueden varias
% Gris [0.88 0.87 0.88]
% Verde [0.86 0.92 0.83]
% Rosa Palo [0.95 0.87 0.82]
% Crema [1 0.98 0.8]
% Morado [0.89 0.90 0.95]
Th=[0.372800000000000 0.239750000000000 0.125000000000000;0.192300000000000
0.182875000000000 0.120668750000000;0.118133333333333 0.114100000000000
0.114154166666667];
marcador={'o','s','x','<','h','p','d','^','>','v','+'}';
for j=1:length(vM)
leg{j}=sprintf('Tecnología %s',F{j});
end
deseadas=[1];
exportar=1;
%==========================================================================
figure(1);
set(axes,'FontName','Times New Roman','FontSize',13,'color',[0.89 0.90 0.95]);
hold on;
list1=lines(length(vT));
colores=list1;
%==========================================================================
if length(find(deseadas==1))>0
for k=1:length(vM),
plot(vT,Pt(k,:), 'color',[colores(k,:)] ,'LineWidth',1.2,'marker',marcador{k});
grid on; drawnow; hold on;
end
ylabel('Consumo de Energía (W)','FontName','Times New
Roman','FontUnits','points','FontSize',14,'FontWeight','normal','FontAngle','normal');
xlabel('Número de Medidores Inteligentes','FontName','Times New
Roman','FontUnits','points','FontSize',14,'FontWeight','normal','FontAngle','normal');
leyenda=legend(leg,'location','southeast');
set(leyenda,'FontName','Times New
Roman','FontUnits','points','FontSize',12,'FontWeight','normal','FontAngle','normal','color',[1 1 1])
set(gcf, 'InvertHardcopy', 'off')
fig = gcf;
fig.Color = 'white';
if exportar~=0,
print -dpdf -r800 Consumo_Energia_SM
print -depsc -r800 Consumo_Energia_SM
%print -dpng -r800 Consumo_Energia_SM
end
end