Logo Studenta

Practica2 PA-18131059

¡Estudia con miles de materiales!

Vista previa del material en texto

Cristal Aricel Saenz Hernandez 
18131059 
 
 
Practica 2 
Hacer los programas indicados en Matlab 
 
 
 
 
Instrucciones: Use MATLAB para realizar los siguientes programas. 
1 ) Escriba un programa en MATLAB que escriba en un archivo dos vectores de números del mismo tamaño, (el total de 
datos de cada vector se deja a su elección). 
2) Escriba un programa que lea los dos vectores de números del programa anterior, pero que al mostrarlos en pantalla 
los muestre invertidos. 
Código: (para escritura) 
%Escriba un programa en MATLAB que escriba en un archivo dos vectores de números del 
%mismo tamaño, (el total de datos de cada vector se deja a su elección). 
fid_3=fopen('vector.txt','w'); 
 
%vector1=cadena de 2 caractesres o numeros 
%vector2=cadena de 2 caracteres o numeros 
%declarar las dos variables que tienen los datos 
vector1=char('1','2','3','4','5'); 
vector2=char('6','7','8','9','10'); 
%un ciclo para leer los datos de la primer variable 'vector1' 
for i=1:length(vector2) 
 fprintf(fid_3,'%1s,%2s\n', vector1(i,:), vector2(i,:)); 
end 
fclose(fid_3); 
Código: (para lectura) 
fid_3read=fopen('vector.txt','r'); 
%Se definen las matrices de las variables 
vector1=[]; 
vector2=[]; 
 
while ~feof(fid_3read) %esto significa que mientras no haya ocurrido el final de archivo 
 %Lee el vector1 
 v=fscanf(fid_3read,'%1d',1); 
 vector1=flip([flip(vector1);v]); 
 coma=fscanf(fid_3read,'%1s',1); %se debe leer la coma para que sí se separen los 
datos leídos 
 
 %Lee el vector2 
 v=fscanf(fid_3read,'%2d',1); 
 vector2=flip([flip(vector2);v]); 
 
 end_of_line=fscanf(fid_3read,'%1c',1); 
end 
fclose(fid_3read); 
Archivo de texto 
1,6 
2,7 
3,8 
4,9 
5,10 
 
 
 
 
 
Evidencias 
 
 
 
 
3) Escriba un programa que almacene en un archivo los nombres de los países de América junto con su superficie en 
Km2 , su población y su idioma. 
4) Escriba un programa que lea y muestre en pantalla el contenido del archivo generado en el programa anterior 
Código: (para escritura) 
fid_latinwrite = fopen ('Latinoamerica.txt','w'); 
 
Pais = 
char('México','Argentina','Uruguay','Brasil','Chile','Colombia','Ecuador','Perú','Bolivia
','Venezuela','CostaRica','Guatemala','Belice','Granada','Panamá','Cuba','PuertoRico','Ho
nduras','Haití','Nicaragua','RepublicaDominicana'); 
Extension = 
char('1,970,000','2,780,000','176,215','8,516,000','756,950','1,139,000','283,561','1,285
,000','1,099,000','916,445','51,179','108,889','22,966','8,802','75,517','110,860','9,104
','112,492','27,750','130,373','48,442'); 
Poblacion = 
char('127,187,000','45,167,000','3,525,000','21,068,800','19,421,000','48,922,000','17,40
5,000','32,313,000','11,533,000','32,423,000','5,086,000','16,921,000','400,031','1,640,0
00','4,250,000','11,198,000','3,194,000','9,234,000','11,663,000','6,562,000','10,407,000
'); 
Idioma = 
char('Español','Español','Español','Portugués','Español','Español','Español','Español','E
spañol','Español','Español','Español','Ingles','Ingles','Español','Español','Español','Es
pañol','Francés','Español','Español'); 
 
for i=1:19 
 fprintf (fid_latinwrite,'%20s %20s %20s 
%20s\n',Pais(i,:),Extension(i,:),Poblacion(i,:),Idioma(i,:)); 
end 
 
 fclose(fid_latinwrite); 
 
 
Código: (para lectura) 
%Archivo para leer los paises de latinoamerica y sus datos 
 
fid_latinread = fopen ('Latinoamerica.txt','r'); 
%Se definen las matrices de las variables 
Pais=[]; 
Extension=[]; 
Poblacion=[]; 
Idioma=[]; 
while ~feof(fid_latinread) %esto significa que mientras no haya ocurrido el final de 
archivo 
 %Lee el pais 
 cadena=fscanf(fid_latinread,'%13s',1); 
 Pais=char(Pais,cadena); 
 %coma=fscanf(fid_latinread,'%1s',1); %se debe leer la coma para que sí se separen los 
datos leídos 
 
 %Lee extension 
 cadena=fscanf(fid_latinread,'%9s',1); 
 Extension=char(Extension,cadena); 
 %coma=fscanf(fid_latinread,'%1s',1); 
 
 %Leer poblacion 
 cadena=fscanf(fid_latinread,'%12s',1); 
 Poblacion=char(Poblacion,cadena); 
 %coma=fscanf(fid_latinread,'%1c',1); %La coma es un caracter, con %1c se lee un solo 
caracter 
 
 %Lee idioma 
 cadena=fscanf(fid_latinread,'%8s',1); 
 Idioma=char(Idioma,cadena); 
 
 end_of_line=fscanf(fid_latinread,'%1c',1); 
end 
for i=1:19 
 fprintf('%20s %20s %20s 
%20s\n',Pais(i,:),Extension(i,:),Poblacion(i,:),Idioma(i,:)); 
end 
fclose(fid_latinread); 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Evidencias 
 
5) Modifique el programa de la convolución, para resolver la convolución entre las siguientes señales. Recuerde que el 
programa debe mostrar la animación. En la figura anexa se muestran las dos señales empalmadas. 
 
Código 
clc; 
close all; 
clear all; 
%Inicialización de variables 
fs=500; %número de datos 
t=linspace(-2,4,fs); 
convol=zeros(1,length(t)); 
set(gcf,'Color',[1 1 1]); 
ax=[-2 4 -0.2 1.1]; 
%Construyendo x(t) a trozos: 
x = 0*t; 
ind = t>=0 & t<2; 
x(ind) = 1; 
ind = t<0 & t>=2; 
x(ind) = 0; 
%Construyendo la señal h(t) 
h=tripuls(1-t,1,-1); 
%Generando la animación: 
subplot(4,2,1); 
plot(t,x,'Color','blue','LineWidth',2),axis(ax); 
grid on; 
xlabel('t'); 
ylabel('x(t)'); 
%Grafica 2 
subplot(4,2,2); 
plot(t,h,'Color','red','LineWidth',1),axis(ax); 
grid on; 
xlabel('t'); 
xlabel('h(t)'); 
 
iter=length(t); 
for i=1:iter 
 moveStep=(4*i-fs)/fs; 
 h_shifted=tripuls(+(t-moveStep)-0.5,1,-1); 
 %Convolución: 
 convol(i)=trapz(t,x.*h_shifted); 
 subplot(4,2,3:4) 
 hold off; 
 plot(t,x,'Color','blue','LineWidth',2),axis(ax); 
 hold on 
 plot(t,h_shifted,'Color','red','LineWidth',2),axis(ax); 
 grid on 
 xlabel('t'); 
 
 subplot(4,2,5:8) 
 hold off; 
 plot(t(1:i),convol(1:i),'Color','black','LineWidth',1); 
 axis([-2 4 -.05 0.52]); 
 grid on 
 xlabel('t'); 
 ylabel('Convolucion(x,h)(t)') 
 
 pause(0.01) 
end 
 
 
 
Evidencia

Continuar navegando

Otros materiales