2013-12-18 1 views
0

Matlab에서 영구적으로 변수 값을 업데이트하려고합니다. 변수 값 (예 : k = 3)이있는 버튼이있을 GUI를 만들고 싶습니다. 텍스트 상자에 값 4 (예 : 7)를 추가합니다. 이제 값 (즉, 7)이 k의 새로운 값이됩니다. 따라서 버튼을 다시 클릭하면 텍스트 상자에 업데이트 된 값이 표시됩니다 (예 : k = 7, 텍스트 상자 : 7 + 4 = 11). 나는 새로운 MATLAB에 그것을 해결하기 위해 여러 가지 방법을 시도했다. 가장 간단한 방법은 있었다 :영구적으로 변수 값을 대체하는 방법

function addition_Callback(hObject, eventdata, handles) 
    k =3; 
    k = 4+k; 
    set(handles.value,'String', ... %here value is the name of the text box 
    [ k ]); 

하지만 버튼을 클릭하고 때마다, 그것은 매우 가정으로 처음부터 시작합니다. 방금 언급 한 방식으로 작동하도록 변수를 선언하려면 어떻게해야합니까?

+0

버튼을 클릭하여 해당 기능의 전체 코드를 게시해야합니다. (또한'k = k + 4'로 가면된다. 임시 변수는 필요 없다.) – Dan

+0

제안을 해주셔서 감사합니다. 당신이 말한대로 바뀌 었습니다. – Bee

+0

클릭 할 때마다 '7 '값을 얻는다 고 말하는 것입니까? 왜냐하면 당신은 현재의 값을 결코 통과하지 않기 때문에 항상'k = 3'에서 시작하도록 다시 설정하기 때문입니다. – Dan

답변

1

단순히 현재 표시된 문자열을 시작점으로 사용하지 않는 이유는 무엇입니까?

function addition_Callback(hObject, eventdata, handles) 
    % get the currently displayed value and convert it to a number 
    current = str2double(get(handles.value, 'String')); 
    % current will be nan if the string is empty or not a valid number 
    if isnan(current) 
     current = 3; % start or fallback-value 
    end 
    new = 4+current; 
    set(handles.value,'String', new) %here value is the name of the text box