Графическое изображение переменных рабочей области в приложении GUIDE

Этот пример показывает, как исследовать и запустить предварительно созданное приложение GUIDE. Приложение содержит поле списка, которое отображает переменные в вашей рабочей области MATLAB®. Кнопка ниже поля списка обновляет список. Эти три кнопки на праве строят график выбранных переменных с помощью различных шкал для осей x и y.

Открытый и выполнение приложение

Открытый и выполнение приложение. Выберите одну переменную в поле списка, и затем содержите клавишу CTRL, чтобы выбрать вторую переменную. Затем нажмите Plot, Semilogx или Semilogy, чтобы построить график переменных.

Исследование кода

  1. В GUIDE нажмите кнопку Editor, чтобы просмотреть код.

  2. Около верхней части окна Editor используйте кнопку Go To, чтобы перейти к функциям, обсужденным ниже.

update_button_Callback

Функция update_button_Callback выполняется, когда пользователь нажимает кнопку Update Listbox. Это содержит одну команду, которая вызывает другую локальную функцию, update_listbox. (Эта функция разделена так, она может быть снова использована в другом месте в приложении.)

Функция update_listbox выполняет команду who в MATLAB workspace, чтобы получить список текущих переменных. Затем это устанавливает содержимое поля списка к тому списку переменных.

vars = evalin('base','who');
set(handles.listbox1,'String',vars)

plot_button_Callback

Функция plot_button_Callback выполняется, когда пользователь нажимает кнопку Plot. Обратные вызовы для кнопок Semilogx и Semilogy содержат большую часть того же кода.

Во-первых, вызовы функции локальная функция get_var_names, который возвращает эти две выбранных переменные в списке.

[x,y] = get_var_names(handles);

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

if isempty(x) && isempty(y)
    return
end

Наконец, команда plot выполняется из базового рабочего пространства.

try
    evalin('base',['plot(',x,',',y,')'])
catch ex
    errordlg(ex.getReport('basic'),...
            'Error generating linear plot','modal')
end
Блок catch представляет ошибочное диалоговое окно, если ошибка происходит.

Похожие темы

Была ли эта тема полезной?