Matlab2021(b)_GUI入门

第一步:App 

第二步:创建组件

 

第三步:修改组件参数 

 

第四步:编写触发条件后执行代码

注意:两种触发:ed和ing

 注意:触发函数的任何一个函数都要指明修改的组件参数,这是最为关键的。

比如要在app.UIAxes绘图,就必须在第一个参数指明。

同理,hold on也不能直接用,必须写为:

hold('组件名','on')

组件名可以在组件浏览器上找到, 并且每个组件有多个属性,可以通过点属性的方式修改或者获取对应参数。

 

 举个例子:

 

一切准备就绪后,点击运行:

 其效果就是,拖动滑块后,触发函数,将滑块的value传递给plot函数。

 

 下面通过一个高斯函数的例子重复一遍这个过程:

 代码:

 % Value changed function: MeanSlider
        function MeanSliderValueChanged(app, event)
            
            % 均值
            average = app.MeanSlider.Value;

            %范围
            Scale = int16(app.ScaleSlider.Value);
            
            % 标准差
            sigma = app.VarianceSlider.Value;
            % 先限定三维图中的x,y轴坐标范围
             % 先限定三维图中的x,y轴坐标范围
            X = -Scale+1 : 1 : Scale-1;
            Y = -Scale+1 : 1 : Scale-1;

            Z = zeros( 2*Scale-1, 2*Scale-1 );
            for row = 1 : 1 : 2*Scale-1
                for col = 1 : 1 : 2*Scale-1
                    Z( row, col ) = ( X(row) - average ).^2 + ( Y(col) - average ).^2; % 均值(average, average)
                end
            end
%             app.UIAxes.XLim=[-2*Scale 2*Scale];
%             app.UIAxes.YLim=[-2*Scale 2*Scale];
            Z = -Z / ( 2 * sigma^2 );
             
            Z = exp(Z) / ( 2 * pi * sigma^2 );
             
            % 显示高斯函数的三维曲面
            surf(app.UIAxes,X, Y, Z);
            
        end

        % Value changed function: VarianceSlider
        function VarianceSliderValueChanged(app, event)
          
            average = app.MeanSlider.Value;

            %范围
            Scale = int16(app.ScaleSlider.Value);
            
            % 标准差
            sigma = app.VarianceSlider.Value;
            % 先限定三维图中的x,y轴坐标范围
              % 先限定三维图中的x,y轴坐标范围
            X = -Scale+1 : 1 : Scale-1;
            Y = -Scale+1 : 1 : Scale-1;

            Z = zeros( 2*Scale-1, 2*Scale-1 );
            for row = 1 : 1 : 2*Scale-1
                for col = 1 : 1 : 2*Scale-1
                    Z( row, col ) = ( X(row) - average ).^2 + ( Y(col) - average ).^2; % 均值(average, average)
                end
            end
%             app.UIAxes.XLim=[-2*Scale 2*Scale];
%             app.UIAxes.YLim=[-2*Scale 2*Scale];
            Z = -Z / ( 2 * sigma^2 );
             
            Z = exp(Z) / ( 2 * pi * sigma^2 );
             
            % 显示高斯函数的三维曲面
            surf(app.UIAxes,X, Y, Z);
        end

        % Value changed function: ScaleSlider
        function ScaleSliderValueChanged(app, event)
             % 均值
            average = app.MeanSlider.Value;

            %范围
            Scale = int16(app.ScaleSlider.Value);
            
            % 标准差
            sigma = app.VarianceSlider.Value;
            % 先限定三维图中的x,y轴坐标范围
              % 先限定三维图中的x,y轴坐标范围
            X = -Scale+1 : 1 : Scale-1;
            Y = -Scale+1 : 1 : Scale-1;

            Z = zeros( 2*Scale-1, 2*Scale-1 );
            for row = 1 : 1 : 2*Scale-1
                for col = 1 : 1 : 2*Scale-1
                    Z( row, col ) = ( X(row) - average ).^2 + ( Y(col) - average ).^2; % 均值(average, average)
                end
            end

%             app.UIAxes.XLim=[-2*Scale 2*Scale];
%             app.UIAxes.YLim=[-2*Scale 2*Scale];
            Z = -Z / ( 2 * sigma^2 );
             
            Z = exp(Z) / ( 2 * pi * sigma^2 );
             
            % 显示高斯函数的三维曲面
            surf(app.UIAxes,X, Y, Z);
            
        end

其它所有的组件都可以根据这种方式进行搭建和调用

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南叔先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值