Descarga la aplicación para disfrutar aún más
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
Compartir