Matlab - GINPUT combinado con GOTO

 
Vista:
sin imagen de perfil

GINPUT combinado con GOTO

Publicado por Mario (3 intervenciones) el 24/07/2015 02:11:16
Buena tarde.

Estoy realizando un análisis de registros de nivel del agua subterránea, y debido a un evento sísmico es necesario definir una sección de análisis, la cual se llevará a otras funciones ya escritas.

La definición de la sección es mediante un GINPUT, pero solicito ayuda para el caso en que requiera volver a definir la sección de interés, es decir, volver al GINPUT y continuar con el codigo...

Anexo una parte del script:

% Seleción de la Sección de Análisis
disp('Define la sección de serie de tiempo a analizar:');

[X1,Y1] = ginput; % <---- OBJETIVO: VOLVER A ESTE PUNTO Y VOLVER A HACER LA SELECCIÓN

lim01 = X1(1,1); lim01 = ceil(lim01); lim01 = find(t == lim01);
lim02 = X1(2,1); lim02 = ceil(lim02); lim02 = find(t == lim02);
XLIM = [lim01, lim02];

% Extraé datos de los vectores de interés según los límites establecidos
t1 = t(lim01:lim02); wl1 = wl(lim01:lim02); bp1 = bp(lim01:lim02);
int_date1 = [datenum(t1(1,1)),datenum(t1(end,1))]; % Intervalo de Tiempo

subplot(212);
hl1 = line(t1,wl1,'Color','k');
ax1 = gca;
datetick('x',dateformat), xlim(int_date1); ylabel(['',Ref(1,1)]);
ax2 = axes('Position',get(ax1,'Position'),'XAxisLocation','top',...
'YAxisLocation','right','Color','none','XColor','k','YColor','k');
hl2 = line(t1,bp1,'Color','b','Parent',ax2); grid on;
ax2 = gca;
datetick('x',dateformat), xlim(int_date1); ylabel(['',Ref(1,2)]);

startDate = t1(1,1); endDate = t1(end,1);
startDate = floor(startDate); endDate = floor(endDate);
xDate = endDate - startDate;

ok = input('Es correcta sección? (''s'' o ''n''): ','s');
if ok == 's',

disp(' Inicio Final Días N-Datos')
disp(sprintf('%s %s %d %d \n',datestr(int_date1(1,1)),...
datestr(int_date1(1,2)),xDate,length(t1)));

else

disp('Define la sección de serie de tiempo a analizar:'); <- EN ESTE CASO DEBE VOLVER AL OBJETIVO (GINPUT)

end


Espero haberme explicado en el 'problema' que enfrento y a cualquier comentario de antemano muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Daniel
Val: 269
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

GINPUT combinado con GOTO

Publicado por Daniel (264 intervenciones) el 24/07/2015 17:24:49
Te recomiendo usar un while, sería algo de esta forma

1
2
3
4
5
6
7
8
9
10
11
12
ok='n';
while ok~='s'
 
    disp('Define la sección de serie de tiempo a analizar:');
    [X1,Y1] = ginput;
 
% aca va todo el resto del código
 
 
     ok = input('Es correcta sección? (''s'' o ''n''): ','s');
 
end

Comentanos como te fue

Saludos

Daniel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar