matlab appdesigner制作UI

这篇具有很好参考价值的文章主要介绍了matlab appdesigner制作UI。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

appdesigner

下载工程

图形用户界面(GUI)也称为应用程序,提供对软件应用程序的点击控制,从而无需学习其他语言或键入命令来运行应用程序, 可以打包成matlab内部app或桌面应用. 传统的guide也可以做ui, 但用起来不如appdesigner好用, 已经即将要被淘汰了.

在matlab命令行输入appdesigner即可进入

matlab appdesigner制作UI

matlab appdesigner制作UI

首页有比较多实例, 这些可以慢慢看, 我们先新建空白app

matlab appdesigner制作UI

左边有很多MATLAB之前就设置好的UI组件,可以直接拖动到画布上使用, 中间可以切换查看设计视图和代码。代码区的灰色代码是不可更改的, 右边为组件浏览器, 可以查看和编辑组件属性.

杨氏干涉

我们有一个已写好的杨氏干涉程序

clear,clc;
%波长(典型值:600)
Lambda = input('输入光的波长(单位为nm):');
Lambda = Lambda * 1e-9;
%缝间隙(典型值:1)
d = input('输入两个缝的间距(单位为mm):');
d = d * 1e-3;
%缝到屏的距离(典型值:1)
D = input('输入缝到屏的距离(单位为m):');
%设置空间坐标的边界
Xmax = 3 * Lambda * D/d; 
Ymax = Xmax;
Tmax = Xmax;
%坐标取样1001份
x = linspace(-Xmax, Xmax, 1001);      
y = linspace(-Ymax, Ymax, 1001);
t = linspace(-Tmax, Tmax, 1001);
%生成二维网格
[x, y] = meshgrid(x, y);
%计算复振幅
r1 = sqrt((x+d/2).^2+D^2);   
r2 = sqrt((x-d/2).^2+D^2);
phi = 2*pi*(r2-r1)/Lambda;  
E1 = 1;
E2 = 1 * exp(-1i * phi);
E = E1 + E2;
%合成波光强
I = abs(E) .^ 2; 
I = I ./ 4;
%取y轴的中线处的光强
I0 = I(501, :);     
%合成光强灰度分布图
subplot(2,1,1);     
imshow(I);            
xlabel('空间坐标x');
ylabel('空间坐标y');
title('杨氏双缝干涉合成光强空间分布');
% 合成光强函数分布图
subplot(2,1,2);
%设置坐标轴
axis([-Tmax,Tmax,0,1]);
plot(t, I0);
xlabel('空间坐标x'), ylabel('合成光强度');
title('杨氏双缝干涉合成光强空间分布函数');

程序的效果是输入光波波长, 双缝间隙和屏缝距离, 输出干涉结果和光强度分布.

matlab appdesigner制作UI

但一次次手动输入太麻烦了, 对该变量的认识也不够直观, 我们想将所有输入量改为实时输入, 改动一个变量就能查看输出结果.

组件摆放

从左边的组件库中拖进来三个滑块组件, 放好位置, 在中间修改长度和名字, 在右边的组件浏览器的ValueLimit分别修改三个滑块的默认值和范围

matlab appdesigner制作UI

再从组件库中拖进来三个坐标区, 两个用来显示实时图像, 一个可以显示原理图或者北京, 再在右边修改它们的标题和坐标轴

matlab appdesigner制作UI

代码

点击中间区域右上角的代码视图进入代码区, 点击菜单-属性-公共属性添加公共类, 这可以理解为一些全局变量, 因为有三个输入控件, 一个量在修改时其他量都不能改变, 这里把所有变量都定义为全局变量

properties (Access = public)
    Property % Description
    Lambda = 600 * 1e-9 % 输入光的波长(单位为nm)
    d = 1 * 1e-3% 输入两个缝的间距(单位为mm)
    D = 1 % 输入缝到屏的距离(单位为m)
    Xmax,Ymax,Tmax % 空间坐标边界
    x,y,t % 绘图变量
    r1,r2 % 光源距离
    phi % 相位差
    E1,E2,E % 合成波
    I,I0 % 光强
end

在其他函数中调用全局变量时, 都需要加一个前缀app., 包括函数名和组件的调用.

点击代码浏览器一个绿色的+号, app选择YoungS(工程的名字),回调选StartupFcn, 添加初始函数.

matlab appdesigner制作UI

在启动函数第一行我们可以显示原理图imshow('杨氏双缝干涉.png','Parent',app.UIAxes3);, 和matlab代码其实一样, 只是最后多了app.UIAxes3, 就是图像要显示到哪一个窗口, 窗口对应的窗口名可在组件浏览器看到.

然后就是计算显示部分, 所有全局变量的调用都带有前缀app.

function startupFcn(app)
    app.Xmax = 3 * 600*1e-9 * app.D/app.d;
    app.Ymax = app.Xmax;
    app.Tmax = app.Xmax;
    %坐标取样1001份
    app.x = linspace(-app.Xmax, app.Xmax, 1001);
    app.y = linspace(-app.Ymax, app.Ymax, 1001);
    app.t = linspace(-app.Tmax, app.Tmax, 1001);
    %生成二维网格
    [app.x, app.y] = meshgrid(app.x, app.y);
    %计算复振幅
    app.r1 = sqrt((app.x+app.d/2).^2+app.D^2);
    app.r2 = sqrt((app.x-app.d/2).^2+app.D^2);
    app.phi = 2*pi*(app.r2-app.r1)/app.Lambda;
    app.E1 = 1;
    app.E2 = 1 * exp(-1i * app.phi);
    app.E = app.E1 + app.E2;
    %合成波光强
    app.I = abs(app.E) .^ 2;
    Imax1 = max(max(app.I));app.I = app.I ./ Imax1;

然后再显示到两个坐标图组件上

imshow(app.I,'Parent',app.UIAxes);
app.I0 = app.I(501, :);
axis(app.UIAxes2,[-0.0018,0.0018,0,1]);
plot(app.UIAxes2,app.t, app.I0);

这时点一下菜单栏的运行, 就会以默认值绘图

matlab appdesigner制作UI

这时三个滑块还是没有作用的, 我们回到设计视图, 右击光波长滑块, 添加回调函数ValueChangingFcn, 意思是每当这个滑块被拖动, 值发生改变, 就会执行这个函数, 另一个ValueChangedFcn则是滑块拖动结束时才执行一次函数.

matlab appdesigner制作UI

在代码视图中找到刚刚添加的回调函数, event.Value是此刻滑块的数值, 我们获取他并再次计算绘图

function T1LambdaValueChanging(app, event)
    %% T1 波长(典型值:600)
    app.Lambda = event.Value * 1e-9; % 获取改变的波长值
    app.phi = 2*pi*(app.r2-app.r1)/app.Lambda;
    app.E2 = 1 * exp(-1i * app.phi);
    app.E = app.E1 + app.E2;
    %合成波光强
    app.I = abs(app.E) .^ 2;
    Imax1 = max(max(app.I));app.I = app.I ./ Imax1;
    imshow(app.I,'Parent',app.UIAxes);
    app.I0 = app.I(501, :);
    plot(app.UIAxes2,app.t, app.I0);

这时再运行, 每次拖动这个滑块时都会执行一次回调函数并重新绘图, 就可以查看干涉条纹随波长变化的实时变化了.

matlab appdesigner制作UI

剩下两个滑块的原理也是一样的, 自行添加即可.

打包

在上方设计工具 - 共享可以看到三个打包选项

MATLAB App

matlab appdesigner制作UI

第一个可以得到一个mlappinstall文件, 可以在matlab主界面的app处安装, 之后在这里可以打开使用

matlab appdesigner制作UI

独立桌面 APP

这里生成的是一个exe文件, 可以自定义启动界面和图标, 但exe文件需要matlab的runtime运行环境, 还是需要在有matlab的设备上, 或者将运行环境整个打包, 但这样软件体积就会非常庞大.

下载

关注公众号小电动车,回复UI下载工程文件文章来源地址https://www.toymoban.com/news/detail-451206.html

到了这里,关于matlab appdesigner制作UI的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MATLAB 之 隐函数绘图、图形修饰处理、图像处理与动画制作和交互式绘图工具

    如果给定了函数的显式表达式,可以先设置自变量向量,然后根据表达式计算出函数向量,从而用 plot 、 plot3 等函数绘制出图形。 但如果函数用隐函数形式给出,则很难用上述方法绘制出图形。对此,MATLAB 提供了一些函数用来绘制隐函数图形。 隐函数二维绘图采用 ezplot 函数

    2024年02月07日
    浏览(46)
  • 认识主被动无人机遥感数据、预处理无人机遥感数据、定量估算农林植被关键性状、期刊论文插图精细制作与Appdesigner应用开发

    目录 第一章、认识主被动无人机遥感数据 第二章、预处理无人机遥感数据 第三章、定量估算农林植被关键性状 第四章、期刊论文插图精细制作与Appdesigner应用开发 更多推荐 遥感技术作为一种空间大数据手段,能够从多时、多维、多地等角度,获取大量的农情数据。数据具

    2024年02月16日
    浏览(51)
  • 纯css制作常见的图形

    效果:  

    2024年02月09日
    浏览(26)
  • Linux环境下非GUI制作图形界面方法

    如题,即就是仅仅使用ANSI转义字符实现Linux环境的页面效果,如字体颜色、背景颜色、高亮、固定位置光标、将光标放到指定位置、隐藏字符串等等。 具体实现方法在如下代码中,使用方法在注释里可以看到。 // //

    2024年02月19日
    浏览(55)
  • java使用swing制作桌面图形应用的实例教程

    本篇文章主要讲解,java编程语言通过swing制作桌面图形应用的实例教程,通过一个简单的个人信息提交表单界面,让你了解swing的布局管理、窗口图标设置、编译和运行以及窗口菜单的设置。 日期:2023年8月25日 弹出新窗口帮助文档界面: 说明:设置新窗口图标和主窗口一致

    2024年02月11日
    浏览(38)
  • PySimpleGUI:使用 Python 轻松制作一个图形界面(GUI)

    大家好,GUI(图形用户界面),顾名思义就是用图形的方式,来显示计算机操作的界面,更加方便且直观。 一个好看又好用的GUI,可以大大提高大家的使用体验,提高效率。比如你想开发一个计算器,如果只是一个程序输入,输出窗口的话,是没有用户体验的。所以开发一个图

    2024年02月16日
    浏览(57)
  • AI开发之——Leonardo—用户工具-AI图形制作(2)

    调出用户工具-AI图片制作窗口 AI图片制作窗口介绍 使用AI图片制作生成图片 AI图片生成后的图片 登录Leonardo.Ai后,点击左侧的 User Tools 下的 AI Image Generation 3.1 AI图片制作窗口 3.2 AI图片制作窗口介绍 Number of Images:生成图片数量 Image Dimensions:图像比例 Guidance Scale:加权程度

    2023年04月25日
    浏览(35)
  • MATLAB 之 图形对象及其句柄和图形窗口与坐标轴

    MATLAB 的图形系统是面向图形对象的。图形对象是 MATLAB 图形元素的集合,是用于显示图形和设计用户界面的基本要素。 在 MATLAB 中,每一个具体的图形都是若干个不同的图形对象组成的。所有的图形对象都按父对象和子对象的方式组成层次结构,其形式如下图所示。 在图形对

    2024年02月09日
    浏览(49)
  • MATLAB简单图形绘制(五)

    目录 实验目的 实验内容   1)掌握MATLAB图形绘制的基本原理和方法; 2)熟悉和了解MATLAB图形绘制程序编辑的基本指令; 3)掌握利用MATLAB图形编辑窗口编辑和修改图形界面,并添加图形的各种标注; 4)掌握plot、subplot的指令格式和语法。 2-1)、设 在=0~2π区间等间隔取100点

    2023年04月14日
    浏览(74)
  • MATLAB .一元函数的图形

    x=a:t:b; y=f(x); plot(x,y,\\\'s\\\') 其中其中f(x)要代入具体的函数,也可以将前面已经定义的函数f(x)代入。a和b分别表示自变量x的最小值和最大值,即说明作图时自变量的范围,必须输入具体的数值。1表示取点间隔(增量),因此这里的x,y是向量。s是可选参数,用来指定绘制曲线的线型

    2024年02月05日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包