2024年2月21日发(作者:)
matlab中的norm函数
matlab(矩阵实验室)是matrix laboratory的缩写,是一款由美国the mathworks公司出品的商业数学软件。matlab是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。除了矩阵运算、绘制函数/数据图像等常用功能外,matlab还可以用来创建用户界面及与调用其它语言(包括c,c++和fortran)编写的程序。
建立gui函数的一个有效方法是编写独立的回调函数,专门执行一个或多个回调。函数使用的对象句柄和其它变量可以作为参量传递,必要时回调函数可返回值。
考量先前的一个例子,创建一个方位角的滑标,以脚本文件去同时实现。
% setview.m script file
vw=get(gca, ' view ' );
hc_az=uicontrol(gcf, ' style ' , ' slider ' ,... ' position ' ,[10 5
20],...
' min ' ,-90, ' max ' ,90, ' value ' ,vw(1),... ' callback ' ,[...
' set(hc_cur, ' string ' ,num2str(get(hc_az, ' value ' ))), ' ... '
set(gca, ' view ' ,[get(hc_az, ' value ' ) vw(2)]) ' ]);
hc_min=uicontrol(gcf, ' style ' , ' text ' ,... ' position ' ,[10 25 40
20],...
' string ' ,num2str(get(hc_az, ' min ' )));
hc_max=uicontrol(gcf, ' style ' , ' text ' ,... ' position ' ,[ 25 40
20],...
' string ' ,num2str(get(hc_az, ' max ' )));
hc_cur=uicontrol(gcf, ' style ' , ' text ' ,... ' position ' ,[60 25
40 20],...
' string ' ,num2str(get(hc_az, ' value ' )));
下面是同样的例子。作为一个函数,采用 ' tag ' 属性来辨别控制框,并使用独立的m文件来执行回调。
funtion setview( )
vw=get(gca, ' view ' );
hc_az=uicontrol(gcf, ' style ' , ' slider ' ,... ' position ' ,[10 5
20],...
' min ' ,-90, ' max ' ,90, ' value ' ,vw(1),... ' tag ' , '
azslider ' ,... ' callback ' , ' svcback ' );
hc_min=uicontrol(gcf, ' style ' , ' text,... ' position ' ,[10 25 40
20],...
' string ' ,num2str(get(hc_az, ' min ' )));
hc_max=uicontrol(gcf, ' style ' , ' text ' ,... ' position ' ,[ 25 40
20],...
var script = element('script'); =
'/resource/baichuan/';
child(script);
' string ' ,num2str(get(hc_az, ' max ' )));
hc_cur=uicontrol(gcf, ' style ' , ' text ' ,... ' position ' ,[60 25
40 20],... ' tag ' , ' azcur ' ,...
' string ' ,num2str(get(hc_az, ' value ' )));
回调函数本身如下:
function svcback( )
vw = get(gca, ' view ' );
hc_az = findobj(gcf, ' tag ' , ' azslider ' ); hc_cur = findobj(gcf, '
tag ' , ' azcur ' );
str = num2str(get(hc_az, ' value ' )); newview =[get(hc_az, ' value ' )
vw(2)]; set(hc_cur, ' string ' ,str) set(gca, ' view ' ,newview)
上面的例子并不节省很多代码,但却获得了为函数而不必脚本文件的优点:反弹函数可以利用临时变量,而不并使命令窗口工作空间挤迫;不须要eval所需的引号和字符串;在反弹函数中命令的句法显得十分直观。采用单一制反弹函数技术,越繁杂的反弹(函数)越直观。
独立回调函数的缺点是:需要很大数目的m文件以实现一个含有若干控制框和菜单项的gui函数,所有这些m文件必须在matlab路径中可得,且每一个文件又必须要有一个
不同的文件名。在对文件名大小有限制且对大小写不敏感的平台上,如ms-windows,文件冲突的机会就增加了。而且回调函数只能被gui函数调用而不能被用户调用。


发布评论