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学习:语法基础-变量

目录 1. 变量命名规则 2. 数据类型 3. 基本操作 3.1 数据类型选择 3.2 改变数据类型 3.3 科学计数法 1. 变量命名规则 与其他编程语言一样,IDL也有自己的变量命名规则: 字符规则:首字母必须是26个英文字母,且只能由字母、数…

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

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

IDL学习:语法基础-数组

目录 1. 创建数组 1.1 直接创建 1. 2 利用函数创建 2. 数组索引 3. 数组操作 3.1 数组的信息 3.2 数组维度变化 3.3 数组的最大值和最小值 3.4 数组方差、均值、标准差、总和运算 3.5 数组元素筛选及重新赋值 3.6 数组元素的排序 3.7 数组间比较 4. 数组运算 4.…

amd为什么还用针脚_为什么AMD不取消cpu上的针脚?

在过去,AMD的速龙系列处理器也使用了LGA触点式接口。包括AMD的皓龙在内的一系列服务器处理器也使用类似于英特尔的LGA接口,但AMD多年来一直在消费级CPU上使用针脚式接口。这样做很好?为什么?这是因为在Intel切换到触点式接口之后&…

IDL学习:语法基础-字符串

1. 创建字符串 IDL中可以用单引号‘’或双引号""来创建字符转 >>a hlz >>b "hlz" >>a eq b1 创建字符串数组,可以利用中括号[]和逗号,相组合的方式进行创建 >>a [Hlz,XMU,厦门] >>a Hlz XMU 厦门 &g…

epoll监听文件_epoll使用详解

epoll介绍epoll的行为与poll(2)相似,监视多个有IO事件的文件描述符。epoll除了提供select/poll那种IO事件的水平触发(Level Triggered)外,还提供了边缘触发(Edge Triggered),这就使得用户空间程序有可能缓存IO状态,减少epoll_wait…

IDL学习:语法基础-结构体

结构体是由一批数据组合而成的结构型数据。组成结构型数据的每个数据称为结构型数据的“属性”(亦称之为“成员”),这些成员可以是变量、数组、字符串以及结构等类型数据。IDL中常用于函数返回值(PS:因为IDL中函数最多…

hdfs数据节点分发什么协议_分布式文件系统HDFS解析

Hadoop 主要由HDFS和MapReduce 引擎两部分组成。最底部是HDFS,它存储Hadoop 集群中所有存储节点上的文件。HDFS 的上一层是MapReduce 引擎,该引擎由JobTrackers 和TaskTrackers组成。一、HDFS基本概念1、数据块HDFS默认的最基本的存储单位是64M的数据块&…

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

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

计算机等级考试java题型_计算机二级考试《java》试题及答案

计算机二级考试《java》试题及答案2017下半年计算机二级考试将于9月23日-26日举行,下面是小编为大家整理的计算机二级考试《java》试题及答案,欢迎参考~计算机二级考试《java》试题及答案一、判断题1. Java语言中的数组元素下标总是从0开始,下…

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

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

hdfs中8031是什么端口号_在宿主机如何访问docker中hadoop的hdfs:ip:9000啊, 端口映射出来啊...

本人有一个3节点hadoop, 启动了3个docker容器, 众所周知, docker容器内服务的端口是可以映射到宿主机的端口的, 我采用-P将容器的所有端口映射到主机端口, 命令如下:docker run -it -v /Users/yc/hadoop/docker:/test -P -h h1 --name h1 sequenceiq/hadoop-docker /etc/bootst…

linux nginx安启动_linux下nginx编译安装启动

1、在指定目录解压包命令:tar -zxvf nginx-1.10.3.tar.gz解压后,在nginx-1.10.3同级目录下,创建nginx目录(编译安装目录)2、编译安装nginx是需要编译安装,在nginx-1.10.3目录下执行命令命令: ./configure --prefix/usr…

linux怎样自制库_如何制作自己的LINUX系统?

创建工作目录使用busybox生成根文件系统中的bin等目录创建服务启动脚本与inittab文件与fstab文件创建根文件系统的init脚本(initrc使用linuxrc,而initramfs使用init脚本,所以先删除busybox为initrc生成的默认的linuxrc文件,rm-rf$LINUX/linux…

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

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

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

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