В этом примере показано, как создать и запустить программное приложение с помощью функций MATLAB®. Пример проводит вас по процессу создания выполнимого приложения, в котором пользователи могут в интерактивном режиме исследовать различные типы графиков. Создайте приложение с помощью этих шагов:
Спроектируйте размещение приложения путем создания основного окна рисунка, разметки компонентов пользовательского интерфейса в нем и конфигурирования внешнего вида компонентов путем установки свойств.
Программируйте приложение, чтобы ответить, когда пользователь будет взаимодействовать с ним.
Запустите приложение, чтобы проверить, что ваше приложение выглядит и ведет себя как ожидалось.
Чтобы создать программное приложение, напишите свой код приложения в файле функции. Это позволяет пользователям запускать ваше приложение из Командного окна путем ввода имени функции.
Создайте новую функцию с именем simpleApp
и сохраните его в файл с именем simpleApp.m
в папке, которая находится на пути MATLAB. Обеспечьте контекст и инструкции для использования приложения путем добавления текста справки в функцию. Пользователи видят этот текст справки путем ввода help simpleApp
в командной строке.
function simpleApp % SIMPLEAPP Interactively explore plotting functions % Choose the function used to plot the sample data to see the % differences between surface plots, mesh plots, and waterfall plots end
Запишите весь свой код приложения в simpleApp.m
файл. Чтобы просмотреть полный пример кода, смотрите Запуск Приложение.
Каждое программное приложение требует, чтобы окно UI Figure служило контейнером первичного приложения. Это - окно, которое появляется, когда пользователь запускает ваше приложение, и это содержит компоненты пользовательского интерфейса, которые составляют приложение. Создайте окно UI Figure, сконфигурированное специально для создания приложений путем вызова uifigure
функция. Возвратите получившийся Figure
возразите как переменная так, чтобы можно было получить доступ к объекту позже в коде. Можно изменить размер, внешний вид и поведение окна рисунка путем установки свойств фигуры с помощью записи через точку.
В этом примере добавьте этот код в simpleApp
функция, чтобы создать окно UI Figure и задать его заголовок.
fig = uifigure;
fig.Name = "My App";
Управляйте положением и размером компонентов пользовательского интерфейса в вашем окне рисунка с помощью менеджера по размещению сетки. Это позволяет вам размечать свои компоненты пользовательского интерфейса в сетке путем определения строки и столбца для каждого компонента.
Добавьте менеджера по размещению сетки в свое приложение при помощи uigridlayout
функция. Создайте сетку в окне рисунка путем передачи в fig
в качестве первого аргумента, и затем задают размер сетки. В этом примере создайте сетку 2 на 2 путем добавления этого кода в simpleApp
функция.
gl = uigridlayout(fig,[2 2]);
Управляйте размером каждой строки и столбца сетки путем установки RowHeight
и ColumnWidth
свойства менеджера по размещению сетки. В этом примере гарантируйте, что центр вашего приложения является отображенными на графике данными. Укажите, что верхняя строка приложения 30 пикселей высотой, и что вторая строка заполняет остальную часть окна рисунка. Соответствуйте ширине первого столбца к содержимому, которое это содержит.
gl.RowHeight = {30,'1x'}; gl.ColumnWidth = {'fit','1x'};
Для получения дополнительной информации о том, как разметить приложения, смотрите, Размечают Приложения Программно.
Пользователи взаимодействуют с вашим приложением путем взаимодействия с различными компонентами пользовательского интерфейса, такими как кнопки, выпадающие списки или поля редактирования. Для списка всех доступных компонентов пользовательского интерфейса смотрите Компоненты App Building.
Этот пример использует три различных компонента пользовательского интерфейса:
Метка, чтобы предоставить инструкцию
Выпадающее, чтобы позволить пользователям выбрать функцию построения графика
Набор осей, чтобы отобразить данные на графике по
Создайте компонент пользовательского интерфейса и добавьте его в сетку путем вызывания соответствующей функции создания компонента и определения менеджера по размещению сетки как первого входного параметра. Сохраните компоненты как переменные, чтобы получить доступ к ним позже в вашем коде. Чтобы создать и сохранить эти три компонента, добавьте этот код в simpleApp
функция.
lbl = uilabel(gl); dd = uidropdown(gl); ax = uiaxes(gl);
После того, как вы создаете компоненты для своего приложения, располагаете их в правильные строки и столбцы сетки. Для этого установите Layout
свойство каждого компонента. Расположите метку в верхний левый угол сетки и выпадающего в верхнем правом углу. Сделайте Axes
возразите охватывают оба столбца во второй строке путем определения Layout.Column
как двухэлементный вектор.
% Position label lbl.Layout.Row = 1; lbl.Layout.Column = 1; % Position drop-down dd.Layout.Row = 1; dd.Layout.Column = 2; % Position axes ax.Layout.Row = 2; ax.Layout.Column = [1 2];
Каждый объект компонента пользовательского интерфейса имеет много свойств, которые определяют его внешний вид. Чтобы изменить свойство, установите его с помощью записи через точку. Для списка свойств компонентов смотрите соответствующую страницу свойств. Например, DropDown Properties перечисляет все свойства выпадающего компонента.
Измените текст метки, чтобы обеспечить контекст для выпадающих опций путем установки Text
свойство.
lbl.Text = "Choose Plot Type:";
Задайте функции построения графика, из которых могут выбрать пользователи в выпадающем путем установки Items
свойство. Установите значение выпадающего, которое пользователь видит когда они первый показ приложение.
dd.Items = ["Surf","Mesh","Waterfall"]; dd.Value = "Surf";
Программируйте свое приложение, чтобы ответить на взаимодействие с пользователем при помощи функций обратного вызова. Функция обратного вызова является функцией, которая выполняется, когда пользователь приложения выполняет определенное взаимодействие, такое как выбор выпадающего элемента. Каждый компонент пользовательского интерфейса имеет несколько свойств коллбэка, каждое из которых соответствует различному взаимодействию с пользователем. Запишите функцию обратного вызова и присвойте ее соответствующему свойству коллбэка управлять поведением вашего приложения.
В этом примере программируйте свое приложение, чтобы обновить график, когда пользователь выберет новый выпадающий элемент. В simpleApp.m
файл, после simpleApp
функционируйте, задайте функцию обратного вызова под названием changePlotType
. MATLAB автоматически передает два входных параметра каждой функции обратного вызова, когда коллбэк инициирован. Эти входные параметры часто называют src
и event
. Первый аргумент содержит компонент, который инициировал коллбэк, и второй аргумент содержит информацию о взаимодействии с пользователем. Задайте changePlotType
принять src
и event
в дополнение к третьему входному параметру, который задает оси, чтобы построить на. В функции обратного вызова получите доступ к новому выпадающему значению с помощью event
аргумент и затем использует это значение, чтобы определить, как обновить данные о графике. Вызовите соответствующую функцию построения графика и задайте входные оси как оси, чтобы построить на.
function changePlotType(src,event,ax) type = event.Value; switch type case "Surf" surf(ax,peaks); case "Mesh" mesh(ax,peaks); case "Waterfall" waterfall(ax,peaks); end end
Сопоставлять changePlotType
функция с выпадающим компонентом, в simpleApp
функция, набор ValueChangedFcn
свойство выпадающего компонента быть массивом ячеек. Первым элементом массива ячеек является указатель на changePlotType
функция обратного вызова. Вторым элементом является Axes
объект отобразить данные на графике по. Когда пользователь приложения выбирает выпадающую опцию, MATLAB вызывает функцию обратного вызова и передает в источнике, событии и аргументах осей. Функция обратного вызова затем обновляет график в приложении.
dd.ValueChangedFcn = {@changePlotType,ax};
Для получения дополнительной информации о записи функций обратного вызова, смотрите Запись обратных вызово для приложений, созданных программно.
Наконец, чтобы убедиться отображенные на графике данные сопоставимы с выпадающим значением даже перед changePlotType
сначала выполняется, вызовите surf
функция.
surf(ax,peaks);
После добавления всех элементов приложения, вашего simpleApp
функция должна выглядеть так:
function simpleApp % SIMPLEAPP Interactively explore plotting functions % Choose the function used to plot the sample data to see the % differences between surface plots, mesh plots, and waterfall plots % Create figure window fig = uifigure; fig.Name = "My App"; % Manage app layout gl = uigridlayout(fig,[2 2]); gl.RowHeight = {30,'1x'}; gl.ColumnWidth = {'fit','1x'}; % Create UI components lbl = uilabel(gl); dd = uidropdown(gl); ax = uiaxes(gl); % Lay out UI components % Position label lbl.Layout.Row = 1; lbl.Layout.Column = 1; % Position drop-down dd.Layout.Row = 1; dd.Layout.Column = 2; % Position axes ax.Layout.Row = 2; ax.Layout.Column = [1 2]; % Configure UI component appearance lbl.Text = "Choose Plot Type:"; dd.Items = ["Surf" "Mesh" "Waterfall"]; dd.Value = "Surf"; surf(ax,peaks); % Assign callback function to drop-down dd.ValueChangedFcn = {@changePlotType,ax}; end % Program app behavior function changePlotType(src,event,ax) type = event.Value; switch type case "Surf" surf(ax,peaks); case "Mesh" mesh(ax,peaks); case "Waterfall" waterfall(ax,peaks); end end
Просмотрите текст справки для своего приложения.
help simpleApp
SIMPLEAPP Interactively explore plotting functions Choose the function used to plot the sample data to see the differences between surface plots, mesh plots, and waterfall plots
Запустите приложение путем ввода имени приложения в Командном окне. Обновите график путем выбора различной опции графического вывода из выпадающего.
simpleApp