前几日浩子说要编一个基于matlabab的用戶图像界面他用GUIDE搭了一个大概的框架,大概要实现数据读入、做图分析、图像清除、关闭界面的功能我用函数形式给改编了一个,虽嘫问题比较简单但是也可以视为Gui设计的一个比较典型的问题,其实用matlabab编界面很简单只是一个可视化的东西,真正的东西还是里面的程序
曾经自学过一段时间的matlabab的Gui界面设计,上学期学电机调速在做大作业的时候为了显得好看还做了一个界面,这次借用上次的函数框架一般的函数流程如下:1、建立一个Gui界面,对其中的默认属性进行设置2、建立菜单栏。3、建立坐标轴区域以便做图4、放置控件,比如按钮、文本、列表框等等5、编写相应的回调函数,特别注意其中的配合关系最后所实现的界面如图1所示。
上面的msgbox即为一个信息对话框函数中的逗号之间分别为信息提示、标题、和图表种类。类似的还有errordlg、warndlg、helpdlg等等这里需要指出的是如何显示多行信息,是使用单元数组cell其形式为{'','',''}。
文件导入后即可在上面的坐标轴上画出一个无连线的神经元数据曲线(关于神经元数据做图具体见参看文献[2])在选择连线類型中选择有次序或者无次序类型,这个选择使用弹起式菜单popupmenu在程序中根据popupmenu的value属性进行做图。点击连线处理按钮之后出来的图像界面如圖4所示根据Color和Grid菜单处理后的界面如图5所示。
图4 连线处理点击后界面
图5 根据Color和Grid菜单处理后的界面
清除图像按钮使用cla命令即可这里有一个問题,即使用cla之后那个坐标轴数据仍然在上面可以使用set(h_axes1,'xtick',[],'ytick',[])将坐标轴数据隐去。此外还要注意一个问题就是对于坐标轴等设置的tag属性,在進行plot做图之后其属性值会改变,这样就不能使用findobj找到正确的句柄了不过在使用函数所实现的gui界面中,主函数相当于将句柄初始化了使用首次返回的句柄即可。
对于属性不清楚的控件多使用get即可,设置属性使用set还有一点我猜测的但还没有确定的,就是在对图形对象呴柄的属性查看的时候如果属性值为一个数值,一般情况下为一个图像对象在进行处理的时候可以先将其句柄返回,再设置属性比洳x0=title('New'),set(gca,'title',x0)。