matlab GUI编程实现插值运算_step by step(Scar原创)
标签:
matlabgui原创教育 |
分类: 软件应用 |
下面我就通过自己的整理,简要的列出如何开发一个自己的应用程序。以一个插值小程序为例。
线性插值大家都懂,而且经常在查表的时候遇到,当然了通过EXCEL就可以很容易实现,我们现在就通过matlab GUI来实现。最终的成果界面如下:
http://s3/bmiddle/693fda4a0786748136db2&690GUI编程实现插值运算_step
并且希望在listbox文本框中列出多次插值计算的计算结果(前后两次计算结果不覆盖),下面一步一步的说明:
-
第一步:首先我们新建一个GUI文件:File/New/GUI。选择Blank GUI(Default);
-
第二步:进入GUI开发环境以后添加5个编辑文本框,5个静态文本框,一个按钮,一个列表和一个面板控件,布置如上图所示;保存名称为chazhi.fig
-
第三步:双击每个控件,就会弹出一个Property Inspector:对象属性观察器,设置其背景色,字体大小,尤为重要的是Tag(控件表示),这个就是控件在m文件中的名称,取一个便于识别的名称方便很多。主界面的Tag:figure_chazhi。
-
第四步:点击工具栏上的菜单编辑器(Menu Editor),打开菜单编辑器,我们需要添加一个菜单项“文件”,里面设置一个“关闭”选项。在Menu Bar 中新建一个菜单项,名字为“文件”,Tag为file,在“文件”菜单下添加菜单项: “关闭”,Tag为exit,确认保存。但是退出菜单并没有定义其功能,需要写一个代码,在M文件中找到function exit_Callback(hObject, eventdata, handles),在下面写上:close(handles.figure_chazhi);这样程序的菜单项就完成了,运行就可看到效果。
-
第五步:在edit1_Callback (hObject, eventdata, handles)下添加下列代码:
%以字符串的形式来存储数据文本框1的内容. 如果字符串不是数字,则现实空白内容
input = str2num(get(hObject,’String‘));
%检查输入是否为空. 如果为空,则默认显示为0
if (isempty(input))
set(hObject,’String‘,’0‘)
end
guidata(hObject, handles);
-
第六步:我们为计算按钮添加代码来实现插值计算的目的。在m文件中找到pushbutton1_Callback代码段,添加以下代码:
a = get(handles.edit1,'String');
b = get(handles.edit2,'String');
c = get(handles.edit3,'String');
d = get(handles.edit4,'String');
x1= get(handles. edit5,'String');
% a ~d are variables of Strings type, and need to be converted
% to variables of Number type before they can be added together
out=(str2num(x1)-str2num(a))*(str2num(d)-str2num(c))/((str2num(b)-str2num(a)))+str2num(c);
e = num2str(out);
% need to convert the answer back into String type to display it
set(handles.result,'String',e);%显示结果的静态文本框Tag为result
guidata(hObject, handles);% 结束以更新数据
-
第七步:实现listbox的结果显示功能(要求显示所有的计算痕迹)。
在pushbutton1_Callback代码段,再添加以下代码:
string_listbox1=get(handles.listbox1,'String');
e1=strvcat(string_listbox1,e);
set(handles.listbox1,'String',e1);
guidata(hObject, handles);
这样,再次计算,listbox中的结果不会被新计算的结果覆盖了。
- 第八步:运行,调试。一切OK!
BY

加载中…