Sunteți pe pagina 1din 18

PROGRAMAS HECHOS EN MATLAB CURSO 2.

VERANO DE INVESTIGACION DELFIN 2 Asesor: Mario Alberto Ibarra Manzano

PROGRAMA 1:
clear all; close all; clc; r=[1 2 3 4 5 6 5 4 3 2 1]; vy=ones(11,11); for radio=1:1:11 vy(radio,:)= repmat(r(1,:),1,1); end %% me debo asegurar de que la operacin resultante, tenga las mismas columnas que

Este programa tiene como finalidad el indexar nuevos valores a una matriz de datos previamente diseada. Como se puede ver se est creando una matriz de puros unos, antes del ciclo for(::) debido a que si no existe esta matriz, y queremos hacer referencia a ella desde dentro del ciclo nos ser imposible ya que intentamos introducir o modificar datos de una matriz que no ha sido generada previamente. Dentro del ciclo ya nos referimos a una parte especial de la matriz de unos generada. Para este anterior ejemplo lo que se est haciendo es referirse a todo un rengln, Qu rengln?: el referente al valor de radio segn el ciclo; pero, Qu se le asigna?: se le asigna una matriz dada por la funcin repmat, la cual tiene la capacidad de introducir matrices dentro de otras matrices, solo se tiene que especificar dentro del primer dato de su parntesis (repmat(dato1,dato2,dato3)) la matriz o los datos que tendr la matriz, en el segundo dato, indicamos el nmero de renglones que tendr la matriz, y en el tercero el nmero de columnas. A continuacin se mostrara un pequeo manejo de matrices en el que se tratara de explicar visualmente el funcionamiento de esta funcin.

>> a=ones(3,3) a= 1 1 1 1 1 1 1 1 1

>> b=[1 2 3;4 5 6;7 8 9] b= 1 4 7 2 5 8 3 6 9

>> a(3,:)=repmat((diag(b))',1,1) a= 1 1 1 1 1 5 1 1 9

Con esto podemos ver claramente el funcionamiento de la funcin repmat, y el modo en el que se puede utilizar.

PROGRAMA 2:
clear all; close all; clc; n=input('cuantos puntos propones'); a=(0.1:1:n); b=ones(1,length(a)-1); ad=0; for w=1:length(b) ad=length(b)-w+1; b(1,w)=-1.*a(1,ad+1); end rf=[b a]; r=((max(rf))^2-(rf).^2).^(1/2)+.000001; tam=length(r); vy=ones(tam,tam); vz1=ones(tam,tam); vz2=ones(tam,tam);

y=ones(tam,tam*2); z=ones(tam,tam*2); x=ones(tam,tam*2); for radio=1:tam vy(radio,:)= -1*r(1,radio) : (2*r(1,radio))/(tam-1): 1*r(1,radio); vz1(radio,:)= sqrt((r(1,radio))^2 - (vy(radio,:)).^2); vz2(radio,:)= -sqrt((r(1,radio))^2 - (vy(radio,:)).^2); y(radio,:)=[vy(radio,:) -vy(radio,:)]; z(radio,:)=[vz1(radio,:) vz2(radio,:)]; x(radio,:)=radio*1*x(radio,:); end plot3(x,y,z,'m*-'); xlabel('eje x'); ylabel('eje y'); zlabel('eje z'); grid on

Este programa tiene como finalidad principal el hecho de crear una grfica en la que se genere a una esfera. El principal motivo de esta grafica es familiarizarse con el uso de matrices, manejar las funciones de grficos en 3-D ofrecidas por MATLAB y ms que nada manejar en un muy buen nivel las matrices. Ahora se explicara su funcionamiento. Lo primero que se hace es pedir un nmero al usuario, tal nmero contendr al nmero de crculos que se harn para generar la grfica que se asemeje a la esfera. Despus de ello se crean 2 vectores, un vector a que ira de 0 a el valor ingresado por el usuario, y el vector b ser un vector que ira de (- valor ingresado por el usuario) hasta el valor 0. Despus de eso se crea un vector rf, el cual contiene al vector a y b, con lo que rf es un vector desde valor propuesto hasta valor propuesto, con lo que obtendramos el doble de crculos que el usuario propuso, y de esta forma tener crculos en ejes negativos y positivos. Con esto obtenemos los valores de los radios para las crculos que generaran a la esfera, pero existe un problema, estos valores son valores que son proporcionales, por lo que causaran una lnea recta y nuestra esfera se asemejara ms bien a un rombo en 3 dimensiones, por lo que esa condicin lineal debe ser modificada, da tal modo que los crculos deben tener tamaos de acuerdo a la direccin que toma un cuarto de circunferencia, para que al rellenarse toda la grfica tengamos una

apariencia esfrica. Despus de eso solo genero matrices que contendrn los valores correspondientes a cada circunferencia. Para qu matrices? Bueno, al graficar con plot3 en MATLAB, el programa debe ser ejecutado con valores de (x,y,z). por ejemplo, cuando le damos una matriz de 3x3 para cada eje, entonces va agarrando cada vector rengln de la matriz para cada eje, formando una matriz de 3 renglones y tantas columnas como puntos hallamos propuesto, en la que el primer dato del primer rengln de la matriz formada corresponde a la coordenada en x para graficar el primer punto de la primer circunferencia, el segundo rengln al eje de las y y el tercero al eje de las z, as con esto se grafican todos los puntos del primer rengln de la matriz de cada coordenada obteniendo la primer circunferencia. Es as que se genera la esfera, solo se van tomando vectores fila de cada una de las matrices generadas y se van generando crculos de mayor tamao.

PROGRAMA 3: Para el programa 3 mostraremos otras superficie generada en 3-D, pero ahora con el comando surf. La imagen que se elabor en el tercer programa fue el desplazamiento de una seal seno, y el cdigo con el cual fue realizada fue el siguiente:
% SI VEMOS A LA MATRIZ QUE DEBE LLEVAR EL SURF, NOS DAMOS CUENTA QUE % CADA COLUMNA ME DICE LOS PUNTOS EN LOS QUE DEBE DE ESTAR LA Z, POR % LO QUE EN REALIDAD LA Z ES LA AMPLITUD DE LA SEAL SENO. % Los datos del primer rengln indica en que parte de "x" estar cada % seal seno y=0:(2*pi)/100:2*pi; z=sin(y); matris=ones(length(y),length(y)); for columna=1:length(y) for renglon=1:length(y) drenglon=(length(y)+1)-renglon; matris(drenglon,columna)=z(1,drenglon); end end figure surf(matris) xlabel('eje x'); ylabel('eje y'); zlabel('eje z'); grid on

Antes que nada lo primero que se hizo fue establecer en que ejes iba a estar postrada la primera seal. Como podemos ver en las variables utilizadas los ejes tomados para graficar la seal fueron el z y el y La variable que lleva por nombre matriz, en realidad contiene puros unos, pero al pasarla por el ciclo tendr a todas las dems seales seno que irn en paralelo a la primera. En si lo que se hace es crear una matriz cuadrada, donde se va llenando cada columna. El primer dato que se pone a cada columna es el dato correspondiente a 2, y el ltimo que se pone es el correspondiente a 0. Como todas las columnas siguientes representan a cada una de las seales seno, que como sabemos contienen la misma amplitud y dems, solo que estn desplazadas en el eje x son iguales, entonces solo lo que hacemos es llenarlas con los mismos datos de la primera seal, en la misma forma.

PROGRAMA 4 Ahora trataremos de explicar una aplicacin en la que se trataba de comprobar el tiempo que el MATLAB tardaba en hacer operaciones con ciclos, y operaciones con datos de indexado. Las seales que se tomaron en cuenta fueron las seales seno, y a estas muestrebamos cierta cantidad de datos para sacar sus promedios. El cdigo siguiente muestra el cdigo que hizo posible la aplicacin.
clear all; close all; clc; %% SEGMENTACION DENSA CON CICLOS n=input ('Numero de puntos a tomar para muestrear?: '); nm= input('En cuantos puntos estar dividida la seal: '); t=0:(2*pi)/nm:2*pi; y=sin(t)+.0001; my=ones(length(y)-n+1,1); %% este va a ser una matriz en la que se presentan las sumas de todas las muestras tic for u=1:length(y)-n+1 my(u,:)=sum(y(u:u+n-1))/n; end toc disp(my) %% SEGMENTACION DENSA CON INDEXADO t=0:(2*pi)/nm:2*pi; y=sin(t); id1= repmat(y(1:n),(length(y)-n+1),1); %% Genero una matriz con tantas columnas como puntos tenga "y" con los datos que tiene el vector y, con los datos de la posicin 2 hasta la posicin determinada por el nmero de datos a muestrear, menos una. id2=[0 y(2:length(y)-n+1)]'; id3=[id2 id2 id2]; id2= repmat(id1(1,1),(length(y)-n+1),n); ini=zeros(1,n); id2(1,:)=ini; index=id1+id3; tic suma=sum(index,2)/n; %% Al decir (index,2) estoy haciendo nfasis en que la suma se haga por los datos de cada rengln toc

Se pudo comprobar que el uso de matrices es mucho ms rpido que al trabajar con ciclos.

PRACTICA 5: Este programa me permite proponer llenar una matriz de tamao nxm, con lo que el usuario en vez de proporcionar una matriz directamente al MATLAB por medio de corchetes, basta que le indique al programa el valor de los ndices de la matriz.
%% ESTE PROGRAMA SERA CAPAZ DE LLENAR LAS CASILLAS DE UNA MATRIZ CUADRADA nxm clc close all; clear all; n=input('Cuantos renglones tiene tu matriz: '); m= input('\nCuantas columnas tiene tu matriz: '); f=1; c=ones(n,m); %% ESTA CICLO ME SIRVE PARA SABER CUANTOS DATOS LE PEDIRE AL USUARIO for a=1:1:n %% este ciclo estar encargado de hacer el salto entre renglones. for b=1:1:m %%este ciclo estar encargado de llenar los renglones fprintf('dame el valor %d: ',f); c(a,b)= input(''); cuando aparece el string de arriba, automticamente ese valor se concatena o se guarda en la matriz por medio del input abajo del string. f=f+1; end end

PRACTICA 6: Mediante el siguiente cdigo genero una matriz de valores aleatorios, entre un rango mximo y mnimos propuestos por el usuario.
clc %LIMPIAR PANTALLA clear all; %LIMPIAR MEMORIA close all; %CERRAR VENTANAS MX= input ('ingrese el mximo'); MN= input ('ingrese el mnimo'); n=input ('ingrese el nmero de columnas'); % PIDO LOS VALORES PARA LA CANTIDAD DE COLUMNAS m=input ('ingrese el nmero de renglones'); a= round((MX-MN)*rand(m,n)+MN); disp(a) % MATRIZ DE MXN HECHA A BASE DE NUMEROS ALEATORIOS. % ESTE ME SIRVE SOLO PARA PRESENTAR RESULTADOS

PRACTICA 7: Esta fue una de las prcticas as extensas que se realizaron durante el verano, ya que consista en disear una aplicacin grafica en la que se diera opcin al usuario de generar una seal senoidal con las especificaciones requeridas por el mismo. Esta aplicacin tena la ventaja de dar valores de amplitud, frecuencia, off-set, desfasamiento, numero de ciclos a ver, as como tambin presentaba al usuario la opcin de guardado o simplemente salir de la aplicacin. A continuacin se presenta el cdigo implementado en un script de MATLAB para la realizacin de tal aplicacin:
Click Close all; Clear all; NP=100; % Valor inicial con el que aparecer la caja de texto 1, correspondiente al nmero de puntos a plasmar de la funciona graficar Ampo=1; % Valor de la amplitud Off=0; %Off-set colocado a la seal NEC=1; % Numero de ciclos de la seal Fase=0; % Desfasamiento aplicado a la seal % Generar vector de tiempo t = 0:(2*pi/ (NP-1)) :(2*pi*NEC); % Calcular funcin seno y = Ampo*sin (fase)+Off; % fig. 1 es el controlador % Para ver las propiedades de la grfica la grfica debe estar abierta, ya % que si no lo est, nos mostrara un error en la pantalla de comandos. fig1= figure(); set(fig1,'NumberTitle','off',... 'MenuBar','none',... 'Units', 'normalized',... 'Position', [0.1 0.1 0.8 0.8]); %las dos ltimas coordenadas me indican el tamao en (x) y en (y) para la ventana eNumP= uicontrol('Units', 'normalized', ... 'Position', [0.02 0.02 0.12 0.05], ... 'Style', 'edit', ... 'String', NP, ... 'Callback', 'eNumP_refresh'); lNumP= uicontrol('Units', 'normalized', ... 'Position', [0.02 0.09 0.12 0.02], ... 'Style', 'text', ... 'String', 'Numero de Puntos',... 'BackgroundColor', get(fig1,'Color'), ... 'FontSize', 10);

EAmP= control ('Units', normalized, 'Position', [0.16 0.02 0.12 0.05], ... 'Style', 'edit', ... 'String', Amp, ... % En la propiedad String de la caja eAmP pongo lo que tenga Amp 'Callback', 'eNumP_refresh'); lAmP= uicontrol('Units', 'normalized', ... 'Position', [0.16 0.09 0.12 0.02], ... 'Style', 'text', ... 'String', 'Amplitud',... 'BackgroundColor', get(fig1,'Color'), ... 'FontSize', 10);

eOff= uicontrol('Units', 'normalized', ... 'Position', [0.30 0.02 0.12 0.05], ... 'Style', 'edit', ... 'String', Off, ... 'Callback', 'eNumP_refresh'); lOff= uicontrol('Units', 'normalized', ... 'Position', [0.30 0.09 0.12 0.02], ... 'Style', 'text', ... 'String', 'Off-Set',... 'BackgroundColor', get(fig1,'Color'), ... 'FontSize', 10);

eNc= uicontrol('Units', 'normalized', ... 'Position', [0.44 0.02 0.12 0.05], ... 'Style', 'edit', ... 'String', Nc, ... 'Callback', 'eNumP_refresh'); lNc= uicontrol('Units', 'normalized', ... 'Position', [0.44 0.09 0.12 0.02], ... 'Style', 'text', ... 'String', 'Numero de Ciclos',... 'BackgroundColor', get(fig1,'Color'), ... 'FontSize', 10); eFase= uicontrol('Units', 'normalized', ... 'Position', [0.58 0.02 0.12 0.05], ... 'Style', 'edit', ... 'String', Fase, ... 'Callback', 'eNumP_refresh'); lFase= uicontrol('Units', 'normalized', ... 'Position', [0.58 0.09 0.12 0.02], ... 'Style', 'text', ... 'String', 'Fase',... 'BackgroundColor', get(fig1,'Color'), ... 'FontSize', 10);

Gdr= uicontrol('Units', 'normalized',... 'Position', [0.72 0.02 0.12 0.05],... 'String', 'Guardar',... 'Callback', 'guardar'); %% INVOCAMOS AL OTRO Scrip llamado guardar, ya que ah se encuentran las instrucciones necesarias para controlar tal evento. bsal= uicontrol('Units', 'normalized',... 'Position', [0.86 0.02 0.12 0.05],... 'String', 'Salir',... 'Callback', 'clc;clear all;close all;'); eje1= axes('Position', [0.1 0.21 0.8 .69]); plot(t,y,'m.') grid on; title('y=sin(t)'); xlabel('t'); ylabel('y'); axis([0 2*pi*Nc -Amp+Off Amp+Off]) % Con esta lnea, ajusto el tamao de los ejes de la grfica de acuerdo a la funcin.

EL PROGRAMA LLAMADO GUARDAR ES EL SIGUIENTE:


[filename, pathname] = uiputfile( ... {'*.txt','archivos de texto'; ... '*.jpg', 'Archivos JPG';... '*.*', 'All Files'}, ... 'Guardar...'); yt=y'; raiz= filename(1:find(filename=='.')); % Extraego la direccin de donde voy a guardar save([pathname raiz 'txt'], 'yt', '-ASCII'); print('-f1','-djpeg90','-r300',[pathname raiz 'jpg']);

COMO SE VEIA LA APLICACION:

Cada que se tecleara un numero dentro de las cajas de texto se debera de refrescar el sistema, haciendo clculos pero ahora con los datos nuevos, por lo que fue necesario manejar el evento Callback de cada uno de los controles. Este evento fue manejado para todas las cajas de texto dentro de otro Script que llevaba por nombre eNumP_refresh, en el cual se aplica el siguiente cdigo:
NP= str2num(get(eNumP,'String')); %esta variable va a ser concatenada con el valor que sea modificado en el edit. text if NP<2 %Esto nicamente me sirve como condicin inicial NP=2; % Este sera el valor mnimo con el que podra estar llena esta caja de texto. set(eNumP, 'String',NP); % NP ES EL DATO QUE PONDRE en la propiedad de texto EN EL EDIT TEXT LLAMADO eNumP end Amp= str2num(get(eAmP,'String')); if Amp<=0 Amp=1; set(eAmP, 'String',Amp); end Nc= str2num(get(eNc,'String'));

if Nc<1 Nc=1; set(eNc, 'String',Nc); end Off=str2num(get(eOff,'String')); Fase= str2num(get(eFase,'String'));

% En s, estas lunes under this code ya estn en el programa Guide_comandos % pero como este Script contiene a los datos mas frescos, pues este algoritmo seria % siempre el ultimo en ejecutarse. % Generar vector de tiempo t = 0:(2*pi/(NP-1)):(2*pi*Nc); % Calcular funcion seno y = Amp*sin(t+Fase)+Off; plot(t,y,'m.') grid on; title('y=sin(t)'); xlabel('t'); ylabel('y'); axis([0 2*pi*Nc -Amp+Off Amp+Off])

PRACTICA 8: Esta prctica solo tiene como finalidad pedir al usuario datos necesarios para construir una grfica senoidal, entre los cuales se piden, nmero de muestras, frecuencia, amplitud, off-set, y desfasamiento. El siguiente cdigo muestra el cdigo para este programa:
%% COMO HACER MODIFICACIONES A UNA FUNCION SENO clc clear all close all %Frecuencia a la que sera muestreada la seal fs=input('En cuantos puntos quieres que sea muestreada la seal'); %INTRODUSCO LA AMPLITUD DE LA SEAL a= input('cul es la amplitud de la seal'); %INTRODUZCO LA FRECUENCIA A LA QUE IRA LA SEAL f=input('Cual es la frecuencia'); %SOLICITO EL GRADO DE DEFASAMIETO

phase=input('Desfase de la seal'); %SOLICITO EL OFF-SET off= input('Off-Set de la signal'); %Solicito el nmero de ciclos a graficar n=input('Cuantos ciclos quieres ver de la seal'); %Genero vector de tiempo t=0:(2*pi/(fs-1)):2*pi*n; % Calculo la funcin seno y=off + a*sin(t + phase); %Grafico la funcion plot(t,y,'m.') %Mallado grid on; %Ttulo de la grafica title('Primer Seal Seno %Etiquetas para los ejes xlabel('tiempo') ylabel('amplitud') %% Esta lnea de abajo me sirvi para ajustar el tamao de los ejes donde est la seal axis([0 2*pi*n (-a+off) (a+off)])

[y=sin(t)]')

PRACTICA 9: En esta prctica lo que se hizo fue crear una aplicacin grafica con la cual se pudiera obtener la media y la varianza de una cierta cantidad de nmeros aleatorios propuestos. El siguiente cdigo muestra las lneas que se necesitaron para crear los controles y dems:
clc; close all; clear all; MAX=0; MIN=0; NPUN=0; MED=0; VAR=0; MREAL=0; MNREAL=0; principal= figure(); set(principal,'Units','normalized',... 'Position', [0.1 0.1 0.8 0.8], ... 'Name', 'GRAFICA ALEATORIA',... 'NumberTitle', 'off'); lname= uicontrol('Units', 'normalized', ... 'Position', [0.1 0.90 0.8 0.1], ... 'Style', 'text', ... 'String', 'GRAFICA ALEATORIA', ... 'FontSize', 20,... 'BackgroundColor', get(principal,'color'));

Pmax= uicontrol('Units', 'normalized', ... 'Position', [0.2 0.1 0.08 0.05], ... 'Style', 'edit', ... 'String', MAX, ... 'Callback', 'Refres'); lPmax= uicontrol('Units', 'normalized', ... 'Position', [0.19 0.14 0.1 0.05], ... 'Style', 'text', ... 'String', 'Maximo Pr.', ... 'FontSize',10,... 'BackgroundColor', get(principal,'color'));

Pmin= uicontrol('Units', 'normalized', ... 'Position', [0.3 0.1 0.08 0.05], ... 'Style', 'edit', ... 'String', MIN); lPmin= uicontrol('Units', 'normalized', ... 'Position', [0.29 0.14 0.1 0.05], ... 'Style', 'text', ... 'String', 'Minimo P.', ...

'FontSize',10,... 'BackgroundColor', get(principal,'color'));

Npun= uicontrol('Units', 'normalized', ... 'Position', [0.4 0.1 0.08 0.05], ... 'Style', 'edit', ... 'String', NPUN); lNpun= uicontrol('Units', 'normalized', ... 'Position', [0.38 0.14 0.12 0.05], ... 'Style', 'text', ... 'String', 'Numero de Puntos', ... 'FontSize',10,... 'BackgroundColor', get(principal,'color')); media= uicontrol('Units', 'normalized', ... 'Position', [0.5 0.1 0.08 0.04], ... 'Style', 'text', ... 'String', MED); lmedia= uicontrol('Units', 'normalized', ... 'Position', [0.49 0.14 0.1 0.05], ... 'Style', 'text', ... 'String', 'Media', ... 'FontSize',10,... 'BackgroundColor', get(principal,'color')); vari= uicontrol('Units', 'normalized', ... 'Position', [0.6 0.1 0.08 0.04], ... 'Style', 'text', ... 'String', VAR); lvari= uicontrol('Units', 'normalized', ... 'Position', [0.59 0.14 0.1 0.05], ... 'Style', 'text', ... 'String', 'Varianza', ... 'FontSize',10,... 'BackgroundColor', get(principal,'color')); Mreal= uicontrol('Units', 'normalized', ... 'Position', [0.7 0.1 0.08 0.04], ... 'Style', 'text', ... 'String', MREAL); lMreal= uicontrol('Units', 'normalized', ... 'Position', [0.69 0.14 0.1 0.05], ... 'Style', 'text', ... 'String', 'Maximo R.', ... 'FontSize',10,... 'BackgroundColor', get(principal,'color')); MNreal= uicontrol('Units', 'normalized', ... 'Position', [0.8 0.1 0.08 0.04], ... 'Style', 'text', ... 'String', MNREAL); lMNreal= uicontrol('Units', 'normalized', ... 'Position', [0.79 0.14 0.1 0.05], ... 'Style', 'text', ... 'String', 'Minimo R.', ...

'FontSize',10,... 'BackgroundColor', get(principal,'color'));

Bguar= uicontrol('Units', 'normalized',... 'Position', [0.3 0.02 0.12 0.05],... 'String', 'Guardar',... 'Callback', 'Guardar2'); Bsal= uicontrol('Units', 'normalized',... 'Position', [0.5 0.02 0.12 0.05],... 'String', 'Salir',... 'Callback', 'clc;clear all;close all;'); generar= uicontrol('Units', 'normalized',... 'Position', [0.7 0.02 0.12 0.05],... 'String', 'Generar',... 'Callback', 'Refres'); graf1= axes('Position', [0.05 0.25 0.90 0.6]); % Generar vector de tiempo t = 0:(2*pi/(NPUN-1)):(2*pi); tam= size(t,2); A = (MAX-MIN)*rand(1, tam)+MIN; % Calcular funcion seno plot(t,A,'m-') grid on; title('y=aleatorio'); xlabel('t'); ylabel('y');

A igual que en la otra aplicacin grafica, fue necesario invocar a otras graficas, con las cuales se tenia la opcin de refrescar los datos, pero tambin se tenia la opcin de llamar al comando guardar. SCRIPT REFRESH
MAX= str2num(get(Pmax,'String')); MIN= str2num(get(Pmin,'String')); NPUN=str2num(get(Npun,'String')); t = 0:(2*pi/(NPUN-1)):(2*pi); tam= size(t,2); if(MAX<MIN) set(Pmax,'String',MIN); set(Pmin,'String',MAX); MAX= str2num(get(Pmax,'String')); MIN= str2num(get(Pmin,'String')); end if NPUN<2 set(Npun,'String',2); end A = (MAX-MIN)*rand(1, tam)+MIN; % Calcular funcion seno plot(t,A,'--gs','LineWidth',2,... 'MarkerEdgeColor','k',... 'MarkerFaceColor','b',... 'MarkerSize',3);

grid on; title('y= aleatoria'); xlabel('t'); ylabel('y'); At=A'; Media=(sum(At,1))/tam; varianza=sum(((At-Media).^2),1)/tam; maximo=max(At); minimo=min(At); set(Mreal,'String',maximo); set(MNreal,'String',minimo); set(media,'String',Media); set(vari,'String',varianza);

SCRIPT GUARDAR
[filename, pathname] = uiputfile( ... {'*.txt','archivos de texto'; ... '*.jpg', 'Archivos JPG';... '*.*', 'All Files'}, ... 'Guardar...'); At=A'; raiz= filename(1:find(filename=='.')); % Extraego la direccion de donde voy a guardar save([pathname raiz 'txt'], 'At', '-ASCII'); print('-f1','-djpeg90','-r300',[pathname raiz 'jpg']);

Con esto logramos tener una aplicacin en la cual podamos proponer un intervalo de valores aleatorios, y tambin tenamos indicadores de los eventos de mayor y menor valor, as como tambin no mostraba la grfica de los puntos generados y en otros cuadros de dialogo se mostraba, indicador que mostraban la media y la varianza de la cantidad de puntos que se dan. La aplicacin tena la siguiente apariencia: Lo especial de la grfica es que nos permite guardar la imagen de los puntos generada, as como tambin nos permite generar un nuevo anlisis de puntos dados, pero hasta que se presionara la opcin generar dentro de la aplicacin grfica.

S-ar putea să vă placă și