Está en la página 1de 20

ACTIVIDAD

Cree una gráfica con las tres columnas. Utilice yrs como datos para x. Utilice este orden y estas
especificaciones de representación gráfica:

1. res: línea azul (b) de guiones (--)


2. comm: línea negra (k) de puntos (:)
3. ind: línea magenta (m) de guiones y puntos (-.)
plot(yrs,res,"b--")
hold on
plot(yrs,comm,"k:")
plot(yrs,ind,"m-.")
hold off

ACTIVIDAD
Los datos de electricidad se almacenan en un archivo llamado electricity.mat. Cargue ese
archivo MAT en MATLAB.
A continuación, introduzca usage en el script para ver la matriz.

load electricity
usage

ACTIVIDAD
Uno de los elementos de la variable usage tiene un valor NaN. Sustituya este valor por el
valor 2.74.

usage(2,3)=2.74

ACTIVIDAD
Los datos residenciales se almacenan en la primera columna. Cree una variable res que contenga
la primera columna de usage.

res=usage(:,1)
ACTIVIDAD
Los datos comerciales y los datos industriales se almacenan en la segunda y tercera columna,
respectivamente. Cree las variables comm e ind, que contendrán la segunda y tercera columna
de usage.

comm=usage(:,2)
ind=usage(:,3)

Los datos de consumo se recopilaron anualmente entre los años 1991 y 2013. La
variable yrs creada ayudará a representar gráficamente los datos de un rango significativo.
ACTIVIDAD
Cree un vector llamado yrs que represente los años desde 1991 hasta 2013.
yrs = (1991:2013)'
ACTIVIDAD
Agregue el título "July Electricity Usage" a la gráfica existente.
Cree una leyenda con los valores "res", "comm" e "ind".

title("July Electricity Usage")


legend("res","comm","ind")

La grabación del acorde Do está almacenada en un archivo llamado Cchord.mat. Este archivo


contiene dos variables:

 y: señal de la grabación
 fs: frecuencia de muestreo

Esta tarea utiliza la función numel para devolver el número de elementos de un arreglo.


ACTIVIDAD
Cargue el archivo Cchord.mat.

Cree una variable llamada n que contenga el número de elementos de y. Después, use n para
crear un vector t uniformemente espaciado que comience en 0, termine en n-1 y tenga elementos
con un espaciado de 1.
load Cchord
n = numel(y)
t = 0:n-1

t tiene ahora el número correcto de puntos, pero debe representar los momentos en que se
muestreó la señal de audio. Puede utilizar la frecuencia de muestreo fs para convertir el vector en
tiempo (en segundos).
ACTIVIDAD
Divida t entre fs. Asigne la salida a la misma variable t. Luego represente y con respecto a t.
t = t/fs
plot(t,y)

En la gráfica, observe que y es periódica, pero no es una simple onda sinusoidal. Está compuesta
por diversas ondas sinusoidales con diferentes frecuencias.

Una transformada de Fourier devolverá información sobre el contenido de frecuencia de la señal.


La ubicación de las frecuencias dominantes mostrará qué notas están contenidas en el acorde.

Puede utilizar la función fft para calcular la transformada discreta de Fourier de un vector.

fft(y)

Los valores de salida de fft son números complejos. Puede utilizar la función abs para obtener
la magnitud.
ACTIVIDAD
Cree una variable llamada yfft que contenga el valor absoluto de la transformada discreta de
Fourier de y.
yfft = abs(fft(y))
En las tareas 1 y 2, calculó el vector de tiempo t para la señal y. De manera similar, debe calcular
el vector de frecuencia f para el vector FFT yfft.
ACTIVIDAD
Cree un vector f uniformemente espaciado que comience en 0, termine en n-1 y tenga elementos
con un espaciado de 1.
f=0:n-1

El vector f contiene ahora n puntos. Para convertir estos puntos en frecuencias, puede multiplicar


todo el vector por la frecuencia de muestreo (fs) y dividirlo entre el número de puntos (n).

f contendrá las frecuencias desde 0 hasta fs. Las frecuencias dominantes se encuentran al


principio de f. Puede utilizar la función xlim para hacer zoom en el área de interés.

xlim([xmin xmax])
ACTIVIDAD
Multiplique f por fs/n. Asigne la salida a la misma variable f.

Represente yfft con respecto a f usando los límites x 0 y 1000.


f = f*fs/n
plot(f,yfft)
xlim([0 1000])
IMPORTACION DE DATOS
Para extraer una variable de la tabla, se puede utilizar la notación de puntos:

data.VariableName
ACTIVIDAD
Asigne el contenido de elements.Density a un vector columna llamado d.
d=elements.Density
Si está trabajando con una tabla, es posible que desee mantener juntos los datos relacionados. En
lugar de crear variables independientes, puede asignar el resultado de un cálculo a una tabla.

data.HeightMeters = data.HeightYards*0.9144

Si la variable data.HeightMeters no existe, MATLAB creará una nueva variable en la tabla con el


nombre HeightMeters.

ACTIVIDAD
Multiplique cada elemento de elements.Density por elements.Volume1. Recuerde usar .*.

Asigne el resultado a elements.Mass.


elements.Mass=elements.Density.*elements.Volume1
elements.Mass=elements.Density.*elements.Volume1
elements = sortrows(elements,"Mass")

ARREGLOS LOGICOS / INDEXACION LOGICA


Los operadores relacionales, como >, <, == y ~=, realizan comparaciones entre dos valores. El
resultado de una comparación de igualdad o desigualdad es 1 (verdadero) o 0 (falso).
ACTIVIDAD
Utilice el operador relacional, <, para comprobar si 
π
 es menor que 4. Asigne la salida a una variable llamada test.
test=pi<4
Puede comparar un vector o una matriz con un único valor escalar utilizando operadores
relacionales. El resultado es un arreglo lógico del mismo tamaño que el arreglo original.

[5 10 15] > 12
ans =
0 0 1
ACTIVIDAD
Pruebe el vector v1 para los elementos menores que 4. Asigne la salida a una variable
llamada test.
test=v1<4
Puede utilizar un arreglo lógico como índice de arreglo, en cuyo caso MATLAB extrae los
elementos del arreglo en los que el índice es true. El siguiente ejemplo extraerá todos los
elementos de v1 que sean mayores que seis.

v = v1(v1 > 6)
v =
6.6678
9.0698
ACTIVIDAD
Cree una variable v que contenga todos los elementos de v1 menores que cuatro.
v=v1(v1<4)

También puede utilizar la indexación lógica con dos vectores diferentes.

v = sample(v1 > 6)
s =
18
23
ACTIVIDAD
Cree una variable s que contenga los elementos de sample correspondientes a cuando v1 es
menor que 4.
s=sample(v1<4)
Puede utilizar la indexación lógica para reasignar valores en un arreglo. Por ejemplo, si desea
reemplazar todos los valores del arreglo x que sean iguales a 999 por el valor 1, utilice la siguiente
sintaxis.

x(x==999) = 1
ACTIVIDAD
Modifique v1 para que cualquier valor menor que 4 sea reemplazado por el valor 0.
v1(v1<4)=0
PROGRAMACION / RAMIFICACIONES DE DECISION
Task 1 & 2
if doPlot
plot(density)
title("Sample Densities")
xticklabels(element)
ylabel("Density (g/cm^3)")
end
if doPlot
plot(density)
title("Sample Densities")
xticklabels(element)
ylabel("Density (g/cm^3)")
else
disp("The density of " + element ...
+ " is " + density)
end

PROGRAMACION BUCLES FOR


for idx=1:7
hold on
plot(idx,density(idx),'*')
hold off
pause(0.2)
end

proyecto final movimiento estelar


lambdaEnd=lambdaStart+(nObs-1)*lambdaDelta
lambda = (lambdaStart:lambdaDelta:lambdaEnd)'

s = spectra(:,6)
loglog(lambda,s,".-")
xlabel("Wavelength")
ylabel("Intensity")

[sHa,idx] = min(s)
lambdaHa = lambda(idx)

hold on
loglog(lambdaHa,sHa,"rs","MarkerSize",8)
hold off
z=lambdaHa/656.28-1
speed=z*299792.458

s = spectra(:,2)
PROYECTO ESTELAR II

[sHa,idx] = min(spectra);
lambdaHa = lambda(idx);
z = lambdaHa/656.28 - 1;
speed = z*299792.458
for c = 1:7
s = spectra(:,c);
end
for c = 1:7
s = spectra(:,c);
if speed(c)<=0
loglog(lambda,s,"--")
end
hold on
end

for c = 1:7
s = spectra(:,c);
if speed(c)<=0
loglog(lambda,s,"--")
else
loglog(lambda,s,"LineWidth",3)
end
hold on
end
hold off
legend (starnames)

movaway=starnames (speed>0)
RESUMEN

También podría gustarte