Matlab GUI设计之坐标转换(附Matlab GUI设计学习手册完整版pdf)

相信看这篇文章的你们大部分没有用Matlab做过界面设计,其实不只是你们,我也是第一次(手动滑稽),在此将我的经验同大家一起分享。

如何开始?

就如哲学家斯宾塞所言:“每一件美好的事情,开始都是很困难的”。编程也是一件美好的事情,而如何开始动手去想,去构思,去编写代码,这些对于新手而言无一不是困难的。其实,编程的大部分工作在于构思。如果你拿到一个问题,在脑中或者是草稿纸上将整体的框架列出来,这个问题已经解决了80%,而剩下20%的编写代码就撒撒水了。只要你会一门语言基本的语法,遇到问题去官网或者谷歌百度,只要肯花时间,那都不是问题。废话不多说,奉上干货。

1.界面布局

拿坐标转换这个简单的程序来说,想要做个界面,首先得明确这个界面程序需要具备哪些功能。坐标转换,得有坐标的输入和输出,还得有一个按钮来实现将输入的坐标转换为输出的坐标,这样一个简单的坐标转换界面就完成了。
Matlab GUI设计之坐标转换(附Matlab GUI设计学习手册完整版pdf)_第1张图片
接下来可以将你想要实现的其它功能一个一个添加进去,比如大地坐标、空间直角坐标的相互转换,椭球基准的选择等。下面是我自己设计的一个界面,功能比较简单,仅作为参考。
Matlab GUI设计之坐标转换(附Matlab GUI设计学习手册完整版pdf)_第2张图片
弹出式菜单下拉选项的编写方式:双击弹出式菜单,选择String右边的文本图标,就可以愉快的添加选项了。
(每个GUI对象文本显示的更改都是通过双击控件,然后更改String的值来实现的)

2.编写回调函数

创建界面后回自动生成一个对应的m文件,用来编辑回调函数。那么回调函数是用来干嘛的呢?简单来说,界面中的对象,比如按钮,当你鼠标点击时会被触发,其相应的回调函数会执行,从而完成对应的功能。
查找对象的回调函数:在对象上单击鼠标右键,查看回调,选择Callback即可。
示例:弹出式菜单的回调函数,在光标处编写代码
Matlab GUI设计之坐标转换(附Matlab GUI设计学习手册完整版pdf)_第3张图片
从图中可以看到,每个回调函数都有三个默认参数:hObject, eventdata, handles
其中hObject为该对象句柄,eventdata为附加参数,handles为包含所有对象信息和用户数据的结构体
handles作为GUI对象的数据容器,每个回调函数可通过handles获取任何GUI对象的数据。例如,在转换按钮对象的回调函数中获取纬度坐标的输入值:

B = get(handles.edit1,'string');

注意:获取的纬度B为字符串格式,参与计算要用str2double进行转换

而handles结构体能做的不仅仅是获取数据,还可以使用set函数来设置某个GUI对象的属性。例如,源坐标类型选择的是空间直角坐标,那么对应的坐标输入下的BLH要变更为XYZ,要想实现静态文本的改变,只需在空间直角坐标对应的单选按钮对象的回调函数中编写如下代码:

set(handles.text1,'String','X = ')
set(handles.text2,'String','Y = ')
set(handles.text3,'String','Z = ')

Matlab GUI设计之坐标转换(附Matlab GUI设计学习手册完整版pdf)_第4张图片
掌握了get和set函数的用法,再结合handles结构体不就可以为所欲为了(/dog)
完整程序下载地址:https://download.csdn.net/download/zxdd2018/11061745

详细教程请看Matlab GUI设计学习手册中的第六章!
链接:https://pan.baidu.com/s/175rDWJr1YSL6MNREUJB53A
提取码:0f0j

个人原创,转载请注明原文出处!(如果文章对您有帮助,请点点赞支持一下作者呀!)

你可能感兴趣的:(matlab)