Matlab - Guardar datos en una matriz y mostrar en un static text

 
Vista:

Guardar datos en una matriz y mostrar en un static text

Publicado por Gustavo Ivan (6 intervenciones) el 29/06/2015 07:34:08
Hola amigos, tengo un problema espero y me puedan ayudar.
Ando adquiriendo datos por el puerto serial y estoy manejando dos variables: tiempo y temperatura. Lo que deseo hacer es que en la matriz pueda guardar ambas variables, de la siguiente manera.

matriz=[tiempo temperatura]

y que dichas varibles se actualizen automaticamente. Y al mismo tiempo se muestre en un static text. Es decir crear una matriz de m x n filas.

Por su ayuda le anticipo las 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 JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Guardar datos en una matriz y mostrar en un static text

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 01/07/2015 00:24:23
1
2
3
4
5
function pushbutton1_Callback(hObject, eventdata, handles)
temperatura=rand(5,4);
tiempo=rand(5,2);
t=num2str([tiempo temperatura]);
set(handles.text1,'string',t)




Saludos
JOSE JEREMÍAS CABALLERO
Asesoría online en Matlab
Servicios de programación matlab
[email protected]
skype: josejeremiascaballero
Estimado Usuario, el correo es para servicios de cursos, asesoría y programación. Toda ayuda gratuita es vía foro.



http://matlabcaballero.blogspot.com
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

Guardar datos en una matriz y mostrar en un static text

Publicado por Gustavo Ivan (6 intervenciones) el 01/07/2015 20:57:05
Hola Jeremias muchas gracias por responder a mi pregunta, pero aun no puedo solucionar mi problema. Ya guardo mis dos varibles: temperatura y tiempo, y las muestra en el static text. El detalle esta en que lo muestra en una sola columna, y yo deseo que sea una columna para cada variable. Espero y me aya explicado de manera correcta.

Muchas gracias, este es mi codigo donde hago la recepcion serial y trabajo con estas dos variables.
Donde guarda es un vector donde almacena el tiempo y datos es un vector que almacena la tempertura leida por el puerto serial.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
% --- FUNCIÓN DE RECEPCIÓN SERIAL.
function rx_b_Callback(hObject, eventdata, handles)
fopen(handles.Se);
% Borrar edit-text de recepción de mensaje
set(handles.editor,'String','')
axes(handles.axes3);
cla reset;
% Desactivar botón actual
set(handles.rx_b,'Enable','off');
set(handles.inicio,'Enable','off');
%set(handles.datos_guardados,'Enable','off');
set(handles.abrir_archivo,'Enable','off');
set(handles.abrir,'Enable','off');
pause(0.1)
global datos val guarda
% Matriz de concatenación
%handles.acc=[ ];
% Vector para guardar los datos obtenidos de la lectura
datos=[ ];
val=[ ];
guarda=[ ];
tiempo=0;
% Poner a 0 el ID de parada del ciclo "while"
set(handles.stop_b,'UserData',0)
set(handles.parar,'UserData',0)
% Ciclo de adquisición
while 1
    if get(handles.stop_b,'UserData') % Verificar ID de parada
       get(handles.parar,'UserData')
        break
    end
    % Si hay datos en buffer de recepción, leerlo
    if handles.Se.BytesAvailable
        lectura=fscanf(handles.Se,'%d'); % Leer buffer de entrada
        tiempo=tiempo+1;
        guarda(tiempo)=(tiempo);
        %A=A(1:end-1); % Quitar "terminator" (~)
        %handles.acc=[handles.acc, lectura]; % Concatenar mensaje
        %set(handles.editor,'String',handles.acc)% Escribir mensaje
        datos(tiempo)=(lectura(1));
        title('GRÁFICA DE TEMPERATURA');
        xlabel('Tiempo (s)');
        ylabel('Temperatura (°C)');
        hold on;
        ylim([0 datos(tiempo)+100]);
        xlim([0 tiempo+10]);
        plot(handles.axes3,tiempo,datos(tiempo),'x');grid on;box on;
        drawnow
        val=num2str([ guarda datos]);
        set(handles.editor,'String',val)% Escribir mensaje
 
 
% temperatura=rand(5,4);
% tiempo=rand(5,2);
% t=num2str([tiempo temperatura]);
% set(handles.text1,'string',t)
 
    end
    pause(0.02);
 
end
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
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Guardar datos en una matriz y mostrar en un static text

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 01/07/2015 23:20:21
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
% --- FUNCIÓN DE RECEPCIÓN SERIAL.
function rx_b_Callback(hObject, eventdata, handles)
fopen(handles.Se);
% Borrar edit-text de recepción de mensaje
set(handles.editor,'String','')
axes(handles.axes3);
cla reset;
% Desactivar botón actual
set(handles.rx_b,'Enable','off');
set(handles.inicio,'Enable','off');
%set(handles.datos_guardados,'Enable','off');
set(handles.abrir_archivo,'Enable','off');
set(handles.abrir,'Enable','off');
pause(0.1)
global datos val guarda
% Matriz de concatenación
%handles.acc=[ ];
% Vector para guardar los datos obtenidos de la lectura
datos=[ ];
val=[ ];
guarda=[ ];
tiempo=0;
% Poner a 0 el ID de parada del ciclo "while"
set(handles.stop_b,'UserData',0)
set(handles.parar,'UserData',0)
% Ciclo de adquisición
while 1
    if get(handles.stop_b,'UserData') % Verificar ID de parada
       get(handles.parar,'UserData')
        break
    end
    % Si hay datos en buffer de recepción, leerlo
    if handles.Se.BytesAvailable
        lectura=fscanf(handles.Se,'%d'); % Leer buffer de entrada
        tiempo=tiempo+1;
        guarda(tiempo,1)=(tiempo);
        %A=A(1:end-1); % Quitar "terminator" (~)
        %handles.acc=[handles.acc, lectura]; % Concatenar mensaje
        %set(handles.editor,'String',handles.acc)% Escribir mensaje
        datos(tiempo,1)=(lectura(1));
        title('GRÁFICA DE TEMPERATURA');
        xlabel('Tiempo (s)');
        ylabel('Temperatura (°C)');
        hold on;
        ylim([0 datos(tiempo)+100]);
        xlim([0 tiempo+10]);
        plot(handles.axes3,tiempo,datos(tiempo),'x');grid on;box on;
        drawnow
        val=num2str([ guarda datos]);
        set(handles.editor,'String',val)% Escribir mensaje
 
 
% temperatura=rand(5,4);
% tiempo=rand(5,2);
% t=num2str([tiempo temperatura]);
% set(handles.text1,'string',t)
 
    end
    pause(0.02);
 
end

Saludos
JOSE JEREMÍAS CABALLERO
Asesoría online en Matlab
Servicios de programación matlab
[email protected]
skype: josejeremiascaballero
Estimado Usuario, el correo es para servicios de cursos, asesoría y programación. Toda ayuda gratuita es vía foro.


http://matlabcaballero.blogspot.com
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

Guardar datos en una matriz y mostrar en un static text

Publicado por Gustavo Ivan (6 intervenciones) el 02/07/2015 04:52:30
Hola Jeremias, me sirvio de mucha tu ayuda.
Ya se muestra una columna para cada variable, y si deseo poner que significa cada variable, por ejemplo se muestre asi en el static text:

time 1s temp 22°C
time 2s temp 22°C
time 3s temp 22°C
time 4s temp 22°C
time 5s temp 22°C
time 6s temp 22°C
time 7s temp 22°C
time 8s temp 22°C
time 9s temp 22°C
time 10s temp 22°C

Que deberia modificar para poder mostrar en el static tex, como el formato anterior?

Saludos y gracias.
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