Matlab - ¿Cómo incrementar el valor del índice de la variable en cada clic del botón?

 
Vista:
sin imagen de perfil

¿Cómo incrementar el valor del índice de la variable en cada clic del botón?

Publicado por Lil Pablo (2 intervenciones) el 13/11/2017 22:33:26
Hola,Quiero configurar el vector A para que cuando presione un boton en el guide de matlab me quede algo asi A(1)=1, si lo presiono por segunda vez A(2)=1 , hasta n veces
Por el momento lo que tengo es esto :
1
2
3
4
5
6
7
8
9
set(handles.pushbutton1, 'UserData',0) %lo tengo en varargout 
function pushbutton1_Callback(hObject, eventdata, handles)
counter = get(hObject, 'UserData') + 1;
handles = guidata(hObject);
set(hObject, 'UserData', counter);
A(counter)=1;
B=num2str(A);
set(handles.text2, 'String',B);
guidata(hObject,handles)
el problema de este código es que no me guarda los valores de A cada que presiono el botón ,A se actualiza y remplaza las posiciones anteriores con 0.
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
sin imagen de perfil

¿Cómo incrementar el valor del índice de la variable en cada clic del botón?

Publicado por Álvaro (32 intervenciones) el 14/11/2017 08:23:22
Prueba a guardarlo al inicio de tu guide como un handle, en la función de apertura (function tuguide_OpeningFcn), para que pueda ''entrar'' en el resto de funciones:

1
2
3
4
handles.counter=0 %Asignas el valor inicial a tu contador de 0
guidata(hObject, handles) %Guardas el handle 
handles.A=[]; %Creas el handle de A en forma de vector vacío para concatenarle horizontalmente los valores del contador
guidata(hObject, handles)

Ahora en el callback de tu pushbutton:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function pushbutton1_Callback(hObject, eventdata, handles)
 
handles.counter = handles.counter + 1;
guidata(hObject, handles)
 
if handles.counter==1
         handles.A=handles.counter;
         B=num2str(handles.A);
         set(handles.text2, 'String',B);
         guidata(hObject,handles)
end
 
if handles.counter>=2
         handles.A=horzcat(handles.A,handles.counter);
         guidata(hObject,handles)
         B=num2str(handles.A(end));
         set(handles.text2, 'String',B);
         guidata(hObject,handles)
end

No sé si funciona, pero yo lo hago así, espero que te sirva
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
sin imagen de perfil

¿Cómo incrementar el valor del índice de la variable en cada clic del botón?

Publicado por Lil (2 intervenciones) el 14/11/2017 20:57:18
No era lo que buscaba pero me sirvió para editarlo y llegar al resultado. 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
sin imagen de perfil

¿Cómo incrementar el valor del índice de la variable en cada clic del botón?

Publicado por Álvaro (32 intervenciones) el 16/11/2017 14:19:50
No entiendo por qué no era lo que buscabas, si no me das más información, pero me alegro de que te haya servido.
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