Matlab 纯代码进行GUI界面编程

       Matlab界面编程传统的有guide,现在matlab朝着appdesigner方向发展。这两种方法都是非常简单适合新手的,如果是一个未接触这方面的,我建议直接学APPdesigner,如果想了解更深入,可以尝试利用纯代码进行编程。 

编程要点:

     1.  需知道具体所需控件的名称;

     2.  需要理解相对应控件的属性;

     我就直接放大招,下图是是界面效果

%==================================说明====================================
%   遥感数据处理软件(待开发)
%   软件作用:处理遥感数据
%
%   作者:胡礼珍
%   单位:厦门大学联合遥感接收站
%   邮件:hulizhen@xmu.edu.cn
%
% Hf            图像句柄
% Hm1           1级菜单句柄
% Hm2           2级菜单句柄
% Hm3           3级菜单句柄
%==========================================================================
%% 清除
clear;close all;clc;
%%%% 图形窗口
Hf = figure('Name','Dream It Possible',...     % 属性:名字'NumberTitle','off',...                         % 属性;去除figure编号'Units','normalized',...                        % 属性:大小归一化'MenuBar','none',...                            % 属性:去掉默认菜单栏'Color',[238 106 80]/255,...                    % 属性:背景色'NextPlot','add',...'OuterPosition',[0.3 0.2 0.4 0.6]);             % 属性:界面位置和大小%% 新建菜单栏
% =======================创建自定义菜单对象01(文件)=======================
Hm1.Mn01 = uimenu(Hf,...'label','文件(&F)');                            % 属性:标签文件Hm2.Sm11 = uimenu(Hm1.Mn01,'label','打开',...'Callback',@Sm11_Callback);Hm2.Sm12 = uimenu(Hm1.Mn01,'label','保存');% =======================创建自定义菜单对象02(读取)=======================
Hm1.Mn02 = uimenu(Hf,...'label','读取(&R)');                            % 属性:标签读取Hm2.Sm21 = uimenu(Hm1.Mn02,...'label','SAR传感器'); % 属性;Hm3.Sm211 = uimenu(Hm2.Sm21,...'Callback',@Sm211_Callback,...'label','海丝一号');                    % 属性;Hm3.Sm212 = uimenu(Hm2.Sm21,...'label','Sentinel-1');                  % 属性;Hm2.Sm22 = uimenu(Hm1.Mn02,...'label','光学传感器');                      % 属性;Hm3.Sm221 = uimenu(Hm2.Sm22,...'label','海丝二号');                    % 属性;Hm3.Sm222 = uimenu(Hm2.Sm22,...'label','Sentinel-2');                  % 属性;% =======================创建自定义菜单对象03(SAR)========================
Hm1.Mn03 = uimenu(Hf,...'label','SAR(&S)');                 % 属性:标签文件Hm2.Sm31 = uimenu(Hm1.Mn03,...'label','基本处理');                        % 属性:Hm3.Sm311 = uimenu(Hm2.Sm31,...'label','多视');                        % 属性:Hm3.Sm312 = uimenu(Hm2.Sm31,...'label','滤波');Hm3.Sm313 = uimenu(Hm2.Sm31,...'Callback',@Sm313_Callback,...'label','伪彩色处理');Hm2.Sm32 = uimenu(Hm1.Mn03,...'label','反演');                            % 属性:Hm3.Sm321 = uimenu(Hm2.Sm32,...'label','风速');                        % 属性:Hm3.Sm322 = uimenu(Hm2.Sm32,...'label','海浪');                        % 属性:Hm3.Sm323 = uimenu(Hm2.Sm32,...'label','内波');                        % 属性:Hm3.Sm324 = uimenu(Hm2.Sm32,...'label','待定……');                    % 属性:Hm2.Sm33 = uimenu(Hm1.Mn03,...'label','提取');                            % 属性:Hm3.Sm331 = uimenu(Hm2.Sm33,...'label','水体');                        % 属性:Hm3.Sm332 = uimenu(Hm2.Sm33,...'label','溢油');                        % 属性:Hm3.Sm333 = uimenu(Hm2.Sm33,...'label','船只');                        % 属性:Hm3.Sm334 = uimenu(Hm2.Sm33,...'label','待补充');                      % 属性:Hm2.Sm34 = uimenu(Hm1.Mn03,...'label','干涉');                            % 属性:Hm3.Sm341 = uimenu(Hm2.Sm34,...'label','DEM');                         % 属性:Hm3.Sm342 = uimenu(Hm2.Sm34,...'label','DInSAR');                      % 属性:Hm3.Sm343 = uimenu(Hm2.Sm34,...'label','PSInsAR');                     % 属性:Hm3.Sm344 = uimenu(Hm2.Sm34,...'label','SBASInSAR');                   % 属性:
% =======================创建自定义菜单对象04(光学)=======================
Hm1.Mn04 = uimenu(Hf,...'label','光学(&O)');                            % 属性:标签文件Hm2.Sm41 = uimenu(Hm1.Mn04,'label','基本处理');Hm3.Sm411 = uimenu(Hm2.Sm41,'label','滤波');Hm3.Sm412 = uimenu(Hm2.Sm41,'label','去云处理');
% =======================创建自定义菜单对象05(工具)=======================
Hm1.Mn05 = uimenu(Hf,...'label','工具(&T)');                            % 属性:标签文件Hm2.Sm51 = uimenu(Hm1.Mn05,...'label','自动生成报表');                    % 属性:% =======================创建自定义菜单对象06(帮助)=======================
Hm1.Mn06 = uimenu(Hf,...'label','帮助(&H)');                            % 属性:标签文件Hm2.Sm61 = uimenu(Hm1.Mn06,'label','联系',...'Checked','Off','Callback', {@Sm61_Callback});Hm2.Sm62 = uimenu(Hm1.Mn06,'label','日志');

        这里面还有几个问题尚未解决:

                1. Logo问题:就目前我知道用JavaFrame可以实现,但这种方法,matlab将来不再支持,可能会取消这个;

                2. 数据之间传递: 不同figure数据传递,这个想用纯代码实现,没时间研究;

                3.专业问题:干涉处理没有相关的插件、工具包;

                4. 成像显示问题:成像效果,不如IDL语言、PS、ENVI、Arcgis软件,想放大那种长条形的的大型图片,matlab只是放大某一区域,好的显示效果应该是是先将整个图放大,直到填充满整个成像区域,然后在放大图片;

        以上问题是我技能欠缺,各位有解决方法,还望告知!

        本程序至是纯利用代码进行GUI界面编程,具体对应菜单调用的函数文件我就不公开了,粉丝们可以根据自己需求进行修改;

        觉得有用就点个赞支持一下;

转载请说明出处!

路漫漫其修远兮,吾将上下而求索。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246500.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入到系统组件是否白盒测试_2019年系统集成项目管理工程师:第一章 信息化知识(三)要点?...

今天幸福哥助理继续为大家分享第一章 第三节 信息化知识(二) 信息系统设计、软件工程及面向对象系统分析与设计等复习知识要点,备考笔记知识点的分享会不定期整理,如果你正好参加这个考试,可以关注我,收藏,或者转发。一…

IDL 文本编码、代码补全快捷方式、IDL doc、格式器、行号显示设置

目录 1. 文本文件编码设置 2. 自动补全设置 3. IDL doc设置 4. 格式器设置 5. 显示行号 每种编程语言的某些设置(快捷键、显示风格)都大相径庭,因此需要需要对一些显示,使得更符合自己的编程习惯,方便用起来得心…

IDL学习(对象):IDLffShape

目录 一、描述 二、创建 三、属性 3.1 ATTRIBUTE_INFO 3.2 ATTRIBUTE_NAMES 3.3 DBF_ONLY 3.4 ENTITY_TYPE 3.5 FILENAME 3.6 IS_OPEN 3.7 N_ATTRIBUTES 3.8 N_ENTITIES 3.9 N_RECORDS 3.10 UPDATE 四、方法: 4.1 IDLffShape::AddAttribute 4.2 IDLff…

tablueau地图标记圆形_30天30张中国风地图,从青绿山水到秦砖汉瓦

本文来自#30天制图挑战#的GISer November_阿瑜瑜瑜瑜,完成了30幅中国风专辑地图,唯美又有韵味,十分赏心悦目,简直把中国风玩出了花~接下来,快来跟着小编一起细品30幅中国风地图吧~~~ 01day 1千里江山图《千里江山图》是…

语言省考安徽考区_安徽省中小学新任教师公开招聘统一笔试 中学信息技术学科考试大纲...

一、考试性质安徽省中小学新任教师公开招聘考试为全省统一组织的公开性选拔考试,是落实“省考、县管、校用”教师管理体制的基础工作。其目的是吸引有志于从事基础教育事业的优秀人才到中小学任教,进一步规范中小学新任教师公开招聘工作,把好…

IDL学习:语法基础-指针、链表

本博客将介绍IDL语法基础中的指针、链表的创建及相关的用法。记录自己的学习整理理解 。 1. 指针 指针也就是内存地址,是用来存放内存地址的变量,指针可以理解为通讯地址,可以通过通讯地址查询具体的信息,而指针可以查询所指向的…

IDL学习:语法基础-对象、哈希表

本博客将介绍IDL语法基础中的对象、哈希表的创建及相关的操作发法。哈希表、链表都可以看做对象,包含了add、reserve、Sort等方法。记录自己的学习整理理解 。 1. 对象 对象是数据(属性)和程序(方法)封装在一起的实体…

茶苑机器人怎么看出来_小儿脑瘫怎么看出来?出现4个异常,该早点去看医生...

小儿脑瘫表现出来的症状是多种多样的,一般儿童三个月就能够展现出来,家长应该多观察孩子的一些异常情况,及时去医院做诊断,做到防患于未然。小儿脑瘫的表现有哪些?1、运动发育明显落后正常的儿童3个月能抬头&#xff0…

itil 容量管理流程_探索ITIL和DevOps的边界

其实在今天的运维领域,ITIL和DevOps之间的冲突还是蛮明显的,有些是表现在产品上,有些是表现在思维/理念上。ITIL在产品上以流程为核心目标的设计,很难满足自动化的要求,DevOps极力推崇工具/平台/自服务文化&#xff1b…

本博客IDL 学习目录

本博客非技术博客,而是总结我在学习IDL、编写IDL代码方面的博客,旨在方便各位可以通过我这篇博客直接选感兴趣的部分。本博客将会持续更新,不断补充…… IDL 学习 1. IDL 文本编码、代码补全快捷方式、IDL doc、格式器、行号显示设置 2. ID…

Matlab 中@ 的用法

Matlab 中的用法主要有:函数句柄、函数表达式、调用父类以及类文件夹。 前两种有很多介绍,后两种涉及类,介绍的人很少。前2个例子,参考了其它博客,总感觉用法都写的不全,所以在此基础上,补充了3…

金蝶k3单据编码规则_金蝶K3存货跌价案例教程

目录案例介绍 后台设置 计提存货跌价准备显示计提表计提凭证模板设置计提凭证生成手工结转跌价准备案例介绍关于存货跌价准备,企业会计准则第1号存货相关规定如下:第十五条 资产负债表日,存货应当按照成本与可变现净值孰低计量。存货成本高于…

maven 关联源码插件_繁琐的任务简单化,Maven的插件机制

Maven的生命周期与Maven插件是项目绑定的,生命周期可以理解为项目构建步骤的集合,它定义了各个构建环节的执行顺序,有了这个顺序,Maven 就可以自动化的执行构建命令。Maven 的核心程序中定义了抽象的生命周期,生命周期…

双稳态继电器工作原理图_固态继电器只有单一的作用吗?带你了解不一样的固态继电器...

固态继电器简写SSR(Solid State Relay),是一种全部又分离的固态电子元件(如光耦合器、晶体管、可控硅、电阻、电容、集成电路等)组成的无触点电阻开关,这里请注意,相比较与继电器、接触器,固态继电器是无触点的耦合开关。因此&…

c++switch实现猜拳_C语言实现人机猜拳游戏,非常适合C++小白练习的项目!

学习迷茫遇到问题了吗?现在关注微信公众号:C程序编程 免费获取进阶指导和学习资料!本文福利在文末!这是一个简单的猜拳游戏(剪子包子锤),让你与电脑对决。你出的拳头由你自己决定,电…

bootstraptable获得所有行_2020广汽本田安全中国行·首届道路安全创新大赛成功举办...

两辆汽车分别搭载了代表着婴儿的红心,当两车相撞,被安全座椅包裹的红心安然无恙,而另一颗没有安全措施的红心直接裂开。画面配文"救救孩子",让人格外揪心。这是来自2020年广汽本田安全中国行首届道路安全创新大赛公益广…

en55032最新标准下载_大型设备塔吊安装维保、安全检查及案例,94页PPT下载!

提示:点击↑上方"建筑安全技术"关注加入领取: 一级建造师课件; 二级建造师课件;注册安全工程师课件;目录:1、 塔吊的安装流程及使用的常规检查2、 塔吊维修保养3、 使用过程中存在的问题4、 …

六年级下册百分数计算题_小学六年级数学期末考,题量较大,出题全面、灵活...

昨天,我们进行了期末考试,因为是八月中旬开学的,所以,期末考试,也进行地比较早。六年级数学上册人教版,此次期末测试,题量是非常大的,大题共有六道,题型呢,主…

媒体转码切片_移动、咪咕携手华为实现5G网络切片应用大型直播

在西班牙巴塞罗那移动通信大会上,华为公司展台用电子屏展示5G技术。新华社资料图近日,第十二届音乐盛典咪咕汇在上海梅赛德斯奔驰文化中心开幕。周杰伦、张惠妹、G.E.M.邓紫棋等华语乐坛著名歌手悉数亮相。在上海移动、咪咕、华为的合作之下,…

macos可以升级到指定版本吗_iOS14如期而至!重大更新的全新版本,值得升级吗?答案在这...

昨天,苹果相继发布了iOS 14,iPad OS 14,watchOS 7,tvOS14和macOS 10.16。顺便说一下,我们将为您提供最新的iOS14测试体验,让您知道它是否值得升级,这让iPhone6s用户留下了深刻的印象。IOS 14是自…