Проблема в том, что ваша функция обратного вызова, выполняющая ваш код, не «видит» параметры, которые вы определили в ваших обратных вызовах редактирования текста. Вам необходимо установить переменные в подфункции, поскольку они не являются глобальными.
Используя guide
, установите кнопку uicontrol
, чтобы нажимать, когда вы вводите параметры в текстовые поля редактирования uicontrol. Под обратным вызовом вашей кнопки поместите код, указанный выше, вверху:
a=str2double(get(handles.a_edit,'String'));
b=str2double(get(handles.b_edit,'String'));
c=str2double(get(handles.c_edit,'String'));
Это будет извлекать текущие строки ваших текстовых редакторов uicontrols. (Предполагается, что вы назначили формат тега x_edit для каждого из текстовых полей редактирования в руководстве.)
EDIT:
Откройте фигуру, которую вы уже создали, в текстовых полях редактирования. Затем убедитесь, что в каждом из ваших текстовых полей есть тег a_edit
, b_edit
, c_edit
с помощью инспектора свойств. Затем создайте кнопку, используя руководство, и откройте инспектор свойств, дважды щелкнув по нему. Найдите поле 'tag' и назовите его run
. Сохраните свою фигуру и откройте соответствующий М-файл.
Далее найдите строку с run_Callback(hObject, eventdata, handles)
. Поместите под него следующее:
a=str2double(get(handles.a_edit,'String'));
b=str2double(get(handles.b_edit,'String'));
c=str2double(get(handles.c_edit,'String'));
%# Add the rest of your code from above verbatim, minus the first three lines
Это должен быть ЕДИНСТВЕННЫЙ код, который вы добавляете в автоматически сгенерированный M-файл - не связывайтесь ни с чем другим, пока вы не заработаете столько работы. Если вы не хотите, чтобы анимация появлялась случайным образом в окне фигуры, вы также можете добавить набор осей с помощью направляющей.