2013-08-12 3 views
1

Я пытаюсь создать программу в MATLAB, и я использую поля редактирования, но я хочу, чтобы значение, которое вводит пользователь, будет использоваться позже из другой функции. Так что я должен использовать переменные global или есть другой способ?GUIDE в MATLAB

Я попытался определить переменные global вне функции, но не работает. Я попытался определить его внутри функции, а затем вызвать ее из другой функции, но она говорит, что она не определена. Есть ли способ, которым я могу это сделать?

Я просто с помощью

function edit1_Callback(hObject, eventdata, handles) 
str2double (get (hObject,'String')); 

Спасибо !! :)

+1

использование рукоятка-структура + guidata !! вы найдете несколько ответов на эту тему о SO ... Я почти уверен :) –

+0

, поэтому я буду использовать 'guidata (hObject, handleles)' в функции поля редактирования, а затем 'a = guidata (hObject, handle) 'в другой функции, которую я хочу назвать? – Chrysovalando

+1

нет, не совсем ;-) Я отправлю короткий ответ на этот вопрос ... –

ответ

3

Если вы хотите хранить данные в Matlab-GUI, вы можете использовать ручки-структуру, как это:

handles.myVar=123; 
%after this dont forget to save it (yes, this is a bit annoying): 
guidata(hObject, handles); 

позже, в другой функции обратного вызова, например, вы можете найти эти данные в пределах рукоятки-конструкции:

handles.myVar 
+0

Я просто использовал ваш код, но вместо 123 я поставил 'str2double (get (hObject, 'String'));' и он всегда показывает мне то же число:/почему? – Chrysovalando

+0

Извините, проигнорируйте мой последний комментарий: p работает сейчас! :) благодаря!! – Chrysovalando

Смежные вопросы