MatLab AppDeveloper
Publicado por Miguel A Rivera (3 intervenciones) el 22/02/2021 21:20:47
Hola a todos,
Estoy programando una GUI en MatLab para una clase mía. La intención es trazar los datos leídos y guardados previamente desde un sensor en los UIAxes. Tengo 3 UIAxes, cada uno de ellos para una variable (Aceleración, Campo Magnético y Tasas). En los 3, el eje X es el tiempo.
Los datos ruidosos se muestran en los UIAxes y cuando los fltro, se filtran pero los datos ruidosos desaparecen.
Me gustaría mostrar tanto los datos ruidosos como los filtrados en mis UIAxes para poder compararlos.
Ya lo probé usando un botón 'Filtro' o un Slider, pero no funciona. Los datos originales siempre se reemplazan por los filtrados.
¿Cómo puedo mostrar tanto los datos filtrados como los no filtrados a la vez, usando el botón 'Filtro' o el Slider? Realmente no tengo ni idea de cómo solucionarlo. A continuación encontrará los códigos que escribí y el archivo. Gracias de antemano.
El código del plot es :
El código del botón de Filtrar es:
Y el del Slider:
Estoy programando una GUI en MatLab para una clase mía. La intención es trazar los datos leídos y guardados previamente desde un sensor en los UIAxes. Tengo 3 UIAxes, cada uno de ellos para una variable (Aceleración, Campo Magnético y Tasas). En los 3, el eje X es el tiempo.
Los datos ruidosos se muestran en los UIAxes y cuando los fltro, se filtran pero los datos ruidosos desaparecen.
Me gustaría mostrar tanto los datos ruidosos como los filtrados en mis UIAxes para poder compararlos.
Ya lo probé usando un botón 'Filtro' o un Slider, pero no funciona. Los datos originales siempre se reemplazan por los filtrados.
¿Cómo puedo mostrar tanto los datos filtrados como los no filtrados a la vez, usando el botón 'Filtro' o el Slider? Realmente no tengo ni idea de cómo solucionarlo. A continuación encontrará los códigos que escribí y el archivo. Gracias de antemano.
El código del plot es :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
File = evalin('base','File');
Directory2 = evalin('base','Directory2');
S = load([Directory2,File]);
app.Accel = [S.accel];
app.Time = [S.time];
plot(app.UIAxes, [S.time],[S.accel]);
S = load([Directory2,File]);
app.Mag_field = [S.mag_field];
app.Time = [S.time];
plot(app.UIAxes2, [S.time],[S.mag_field]);
app.Mag_field = S;
S = load([Directory2,File]);
app.Rates = [S.rates];
app.Time = [S.time];
plot(app.UIAxes3, [S.time],[S.rates]);
app.Rates = S;
El código del botón de Filtrar es:
1
2
3
4
5
6
windowSize = 5;
b = (1/windowSize)*ones(1,windowSize);
a = 1;
for i=1:numel(app.UIAxes.Children)
app.UIAxes.Children(i).YData = filter(b, a, app.UIAxes.Children(i).YData);
end
Y el del Slider:
1
2
3
4
5
6
value = event.Value;
smoothingdata = smooth(app.Time, app.Accel, value);
plot(app.UIAxes, app.Accel, app.Time);
hold(app.UIAxes, "on");
plot(app.UIAxes, app.Accel, smoothingdata);
hold(app.UIAxes, "off");
Valora esta pregunta
0