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

 
Vista:
sin imagen de perfil
Val: 3
Ha aumentado su posición en 44 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

¿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
Val: 71
Ha disminuido su posición en 5 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

¿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
Val: 3
Ha aumentado su posición en 44 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

¿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
Val: 71
Ha disminuido su posición en 5 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

¿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
Revisar política de publicidad