可以实现模拟正弦函数,余弦函数。以及可调节a的二次函数y=ax^2
classdef app1 < matlab.apps.AppBase
% Properties that correspond to app components
properties (Access = public)
UIFigure matlab.ui.Figure
aEditField matlab.ui.control.NumericEditField
aEditFieldLabel matlab.ui.control.Label
Slider matlab.ui.control.Slider
SliderLabel matlab.ui.control.Label
yax2Button matlab.ui.control.Button
ycosxButton matlab.ui.control.Button
ysinxButton matlab.ui.control.Button
UIAxes matlab.ui.control.UIAxes
end
% Callbacks that handle component events
methods (Access = private)
% Button pushed function: ysinxButton
function ysinxButtonPushed(app, event)
x=linspace(0,2*pi,100)
y=sin(x)
plot(app.UIAxes,x,y);
app.UIAxes,Xlim=[0,2*pi];
app.UIAxes,Ylim=[-1,1];
xlabel(app.UIAxes,'x');
ylabel(app.UIAxes,'sin(x)');
title(app.UIAxes,'三角函数');
end
% Button pushed function: ycosxButton
function ycosxButtonPushed(app, event)
x=linspace(0,2*pi,100)
y=cos(x)
plot(app.UIAxes,x,y);
app.UIAxes,Xlim=[0,2*pi];
app.UIAxes,Ylim=[-1,1];
xlabel(app.UIAxes,'x');
ylabel(app.UIAxes,'cos(x)');
title(app.UIAxes,'三角函数');
end
% Button pushed function: yax2Button
function yax2ButtonPushed(app, event)
x=linspace(-10,10,100)
a=app.aEditField.Value
y=a*x.^2
plot(app.UIAxes,x,y);
app.UIAxes,Xlim=[-10,10];
app.UIAxes,Ylim=[0,100];
xlabel(app.UIAxes,'x');
ylabel(app.UIAxes,'a*x^2');
title(app.UIAxes,'二次函数');
end
% Callback function
function SliderValueChanged(app, event)
app.aEditField.Value=app.Slider.Value
yax2ButtonPushed(app, event)
end
% Callback function
function SliderValueChanged2(app, event)
end
% Value changed function: Slider
function SliderValueChanged3(app, event)
app.aEditField.Value = app.Slider.Value;
yax2ButtonPushed(app, event)
end
end
% Component initialization
methods (Access = private)
% Create UIFigure and components
function createComponents(app)
% Create UIFigure and hide until all components are created
app.UIFigure = uifigure('Visible', 'off');
app.UIFigure.Position = [100 100 640 480];
app.UIFigure.Name = 'MATLAB App';
% Create UIAxes
app.UIAxes = uiaxes(app.UIFigure);
title(app.UIAxes, 'Title')
xlabel(app.UIAxes, 'X')
ylabel(app.UIAxes, 'Y')
zlabel(app.UIAxes, 'Z')
app.UIAxes.Position = [1 175 368 259];
% Create ysinxButton
app.ysinxButton = uibutton(app.UIFigure, 'push');
app.ysinxButton.ButtonPushedFcn = createCallbackFcn(app, @ysinxButtonPushed, true);
app.ysinxButton.Position = [413 278 100 22];
app.ysinxButton.Text = 'y=sin(x)';
% Create ycosxButton
app.ycosxButton = uibutton(app.UIFigure, 'push');
app.ycosxButton.ButtonPushedFcn = createCallbackFcn(app, @ycosxButtonPushed, true);
app.ycosxButton.Position = [413 230 100 22];
app.ycosxButton.Text = 'y=cos(x)';
% Create yax2Button
app.yax2Button = uibutton(app.UIFigure, 'push');
app.yax2Button.ButtonPushedFcn = createCallbackFcn(app, @yax2ButtonPushed, true);
app.yax2Button.Position = [413 175 100 22];
app.yax2Button.Text = 'y=a*x^2';
% Create SliderLabel
app.SliderLabel = uilabel(app.UIFigure);
app.SliderLabel.HorizontalAlignment = 'right';
app.SliderLabel.Position = [414 343 36 22];
app.SliderLabel.Text = 'Slider';
% Create Slider
app.Slider = uislider(app.UIFigure);
app.Slider.Limits = [0.1 10];
app.Slider.ValueChangedFcn = createCallbackFcn(app, @SliderValueChanged3, true);
app.Slider.Position = [471 352 118 7];
app.Slider.Value = 0.1;
% Create aEditFieldLabel
app.aEditFieldLabel = uilabel(app.UIFigure);
app.aEditFieldLabel.HorizontalAlignment = 'right';
app.aEditFieldLabel.Position = [462 389 25 22];
app.aEditFieldLabel.Text = 'a';
% Create aEditField
app.aEditField = uieditfield(app.UIFigure, 'numeric');
app.aEditField.Position = [502 389 81 15];
app.aEditField.Value = 1;
% Show the figure after all components are created
app.UIFigure.Visible = 'on';
end
end
% App creation and deletion
methods (Access = public)
% Construct app
function app = app1
% Create UIFigure and components
createComponents(app)
% Register the app with App Designer
registerApp(app, app.UIFigure)
if nargout == 0
clear app
end
end
% Code that executes before app deletion
function delete(app)
% Delete UIFigure when app is deleted
delete(app.UIFigure)
end
end
end