找回密码
 注册
Simdroid-非首页
查看: 38835|回复: 106

【原创】一些经典guide编程

[复制链接]
发表于 2003-10-27 18:36:02 | 显示全部楼层 |阅读模式 来自 上海浦东新区
本帖最后由 cwit 于 2012-4-7 15:52 编辑

原来发的第一个例子因为无法在matlab新版本中运行,因此删除了。保留了后面两个例子,都算是早期的小作品,这些可以作为初学者的参考资料。sample中演示的重点不是算法,而是编程规范和模块框架。
希望能够给大家一些参考。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

1

查看全部评分

发表于 2003-10-27 21:18:02 | 显示全部楼层 来自 上海闸北区

回复: 【原创】一个经典guide编程

Simdroid开发平台
支持原创
希望大家都能达到cwit 的水平:D
 楼主| 发表于 2003-11-20 17:02:46 | 显示全部楼层 来自 上海浦东新区

回复: 【原创】一个经典guide编程

刚开始可能有点难,但是仔细读了之后相信你能学到很多独特的东西。
这是我用了一年多时间摸索guide编程后形成的一些方法和技巧。
 楼主| 发表于 2003-12-1 12:16:38 | 显示全部楼层 来自 上海浦东新区

回复: 【原创】一个经典guide编程

有人说这个例子太难,我就贴一个简单的例子。
这可是我两年前用matlab写的第一个函数,算是处女作。
这个例子涉及三角函数的系数变换及其极坐标系绘图,以及界面和控件的颜色修改。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2003-12-29 11:47:30 | 显示全部楼层 来自 上海浦东新区

回复: 【原创】一个经典guide编程

第二个例子抓图:你可以欣赏到数学之美!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2004-1-2 01:09:21 | 显示全部楼层 来自 上海闸北区

回复: 【原创】一个经典guide编程

我的结构采用的是matlabGUI自动生成的那种结构,然后再作了一些调整。简单是示例如下:
  
function varargout = test_function( varargin )  
% ....................  
  
if nargin == 0  
  
    figurehandle = test_generatefigurecontent;  
  
    test_initfiguecontent(figurehandle);  
  
    if nargout > 0  
       varargout{1} = figurehandle ;  
    end  
  
elseif ischar( varargin{1} )  
  
    try  
        if nargout > 0  
         [varargout{1:nargout}] = feval( varargin{:} ) ;  
     else  
         feval( varargin{:} ) ;  
     end  
    catch  
        disp( lasterr ) ;  
    end  
end  
  
% -------------------------------------------------------------------------  
function figurehandle = test_generatefigurecontent;  
  
.....................................  
handles = guihandles( figurehandle );  
guidata( figurehandle, handles ) ;  
  
% --------------------------------------------------  
function test_initfiguecontent( h )  
  
handles = guidata( h ) ;  
........................................  
  
% --------------------------------------------------  
function test_Uicontrol_Callback( h ) ;  
  
handles = guidata( h ) ;  
........................................  
  
关于参数传递,你可以参考我的帖子:
http://www.simwe.com/cgi-bin/ut/topic_show.cgi?id=22405&h=1&bpg=5&age=0
关于nargin,nargout,varargin,varargout,你可以参考我的帖子:
http://www.simwe.com/cgi-bin/ut/topic_show.cgi?id=23227&h=1#122928
 楼主| 发表于 2004-1-8 16:57:49 | 显示全部楼层 来自 上海闸北区

回复: 【原创】一个经典guide编程

建议你把这个论坛看得懂的帖子都看一遍,水平就会大有长进。然后再把能够看得懂的帖子再看一遍,水平就会更上一层楼。我就是这样做的。
ardell101 该用户已被删除
发表于 2004-1-14 23:26:23 | 显示全部楼层 来自 陕西西安
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2004-1-15 13:39:28 | 显示全部楼层 来自 上海闸北区

回复: 【原创】一个经典guide编程

有空我给你编译一个matlab6.1的版本,请你关注一下这里。
至于编译成dll文件,你可以学习一下这个论坛上的历史帖子,尤其是精华区的内容,相信你能够得到满意的答案。
 楼主| 发表于 2004-1-17 17:53:25 | 显示全部楼层 来自 上海闸北区

回复: 【原创】一个经典guide编程

刚刚编译好,你看一下。不好意思,现在才给你。
这个文件是在matlab6.1下编译的,matlab6.5下可能不能用。matlab6.5下用前面那个版本。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2004-5-29 12:56:26 | 显示全部楼层 来自 上海

回复: 【原创】一个经典guide编程

将上次MATLAB应用技术的发言稿一并贴上来,因为上次是准备30分钟的内容,故ppt做得比较简单,结合这里的一些附带源代码的例子,相信对大家还是有一些收获。附件中的例子是在MATLAB 6.1下编译的,可能不能在MATLAB 6.5环境下使用。
下载链接: http://www.simwe.com/ut/attach/2004/05/20/250616-cwit.zip
发表于 2004-6-8 09:08:51 | 显示全部楼层 来自 江苏南京

回复: 【原创】一个经典guide编程

那个附件怎么运行啊?
 楼主| 发表于 2004-6-10 23:27:07 | 显示全部楼层 来自 上海

回复: 【原创】一个经典guide编程

将附件中的文件夹复制到安装有MATLAB 6.1的机器上即可以运行,因为我比较偏好于MATLAB 6.1,所以就用这个版本编译的。在MATLAB 6.5下可能不能够运行。
yufen 该用户已被删除
发表于 2004-6-25 15:45:20 | 显示全部楼层 来自 湖南长沙
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2004-6-25 16:23:34 | 显示全部楼层 来自 上海

回复: 【原创】一个经典guide编程

那是一个方法,对于一般简单的figure,直接用guide是一个不错的选择。但是一旦要创建大量或者复杂的figure时,用m代码实现,可以复制,复用,也可以将公共的部分模块化。并且用guide生成*.fig定义复杂的函数输入输出比较麻烦,并且其很多代码是重复无用的。
 楼主| 发表于 2004-7-1 08:36:24 | 显示全部楼层 来自 上海

回复: 【原创】一些经典guide编程

要想了解matlab的底层知识,这个函数你必须认真学习。
figure命令的细节再现:菜单、工具条的代码生成。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2004-8-20 10:45:09 | 显示全部楼层 来自 上海

回复: 【原创】一些经典guide编程

不用谢!
如果各位能够将自己的心得一并贴上来,那将是大家的幸事!
发表于 2004-8-20 16:23:58 | 显示全部楼层 来自 安徽安庆

回复: 【原创】一些经典guide编程

对于Matlab的GUI编程,偶认为不是很强
  
Matlab提供了Web支持Matlabserver(类似asp解释),采用网页作为matlab的界面,后台调用.m文件不是很好吗?(需要Web服务支持,无需启动Matlab)
  
欢迎大家对此讨论!
ffzzj 该用户已被删除
发表于 2004-8-21 15:28:15 | 显示全部楼层 来自 黑龙江哈尔滨
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2004-8-27 13:51:31 | 显示全部楼层 来自 上海

回复: 【原创】一些经典guide编程

matlab的gui确实不够完美,现在还无法实现多文档窗口,以及在菜单和工具条中添加popupmenu等等。但是它能够实现一些基本的功能。同时matlab的gui部分也可以完全编译,也就能够成为写程序的一种选择。matlab的编译器,涉及gui部分的编译,还是以matlab6.1的最好,所以建议各位用matlab6.1的兄弟,不要轻易放弃。
我用matlab实现了一个数字地图的功能,可以到这里去看看:  http://www.simwe.com/cgi-bin/ut/post_edit.cgi?id=313643&pg=1&ae=0&bpg=2&age=100
有兴趣的朋友,可以继续在这里讨论这个问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-3-29 00:00 , Processed in 0.060433 second(s), 19 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表