错误使用subsindex没有为类matlab.graphics.axis和axes.axes的值定义函数

MATLAB 面向对象编程(OOP)-在MATLAB中设计用户类 在设计MATLAB类时,应包括一组标准的方法以使类的行为与MATLAB环境协调一致并合乎逻辑。根据所设计的类的特点,你不一定要包含所有这些方法,并且你可能会包含一些其它方法以实现类的设计目标。 下表所列为MATLAB类中包含的基本方法。 类方法 类构造器 display 说明 创建类的对象 当MATLAB显示对象内容时被调用(例如,当输入的表达式没有以分号结束时) set和get subsref和subsasgn end subsindex 访问类的属性 允许对用户对象进行下标引用和赋值 在对象的索引表达式中支持end语法。 支持在索引表达式中使用对象 double和char等类型转换将对象转换为MATLAB数据类型的方法 函数 接下来的几节将讨论每种方法的实现并提供本章中所用例子的参考链接。 类构造方法 特定类的@目录中必须包括一个称为该类的构造函数的M-文件。构造函数的名称与类目录的名称相同(除了@前缀和.m扩展名)。构造函数通过初始化类数据结构和初始化一个类的对象来创建对象。 构造函数编写指南 类构造函数必须执行某些功能,以使对象在MATLAB环境下正确运行。通常,一个类的构造函数必须处理三种可能的输入参量组合:
无输入参数 一个同类对象作为输入参数 用来创建类的对象的输入参数(通常是某类数据) 无输入参数。如果没有输入参数,构造函数应该创建一个默认对象。既然没有输入,你没有用来创建对象的数据,所以只需用空的或默认值来初始化对象的数据,调用class函数来初始化对象,并将对象作为输出参数返回。这样做有两方面的原因: u 当加载对象到工作空间时,load函数以无参数的方式调用类的构造函数。 u 在创建对象数组时,MATLAB调用此类构造函数来向数组中添加对象。 对象输入参数。如果参数列表中的第一个参数是一个同类对象,构造函数应该只是将对象返回。可以用isa函数来确定输入参数是否类的成员。这一构造函数语法的例子见重载+运算符。 数据输入参数。如果输入参数存在且不是本类的对象,那么构造函数就用输入参数创建对象。当然,像在其它函数中一样,你也应在构造函数中对参数进行适当的检查。典型的做法是用varargin作为输入参数,用一个switch语句来控制程序流程。这为我们提供了一种可以适应三种情况:无输入、对象输入、数据输入来创建对象的简单方法。 正是在构造函数的这一部分中,你对对象的数据进行赋值、调用class函数初始化对象并将对象作为输出参数返回。如果需要,可以用superiorto和inferiorto函数来将对象放置到对象层次结构中。 构造函数中class函数的使用 在构造方法中,你通过class函数来将一个对象结构关联到某特定的类。这是通过仅可通过class和isa函数访问的内部类标签实现的。例如,下面class函数的调用将对象p标记为polynom类 p = class(p,’polynom’); 构造方法的例子 有关构造方法的例子请查看下列章节:
Polynom类的构造方法
Asset类的构造方法
Stock类的构造方法
Portfolio类的构造方法 在类目录外识别对象 在类构造方法中使用的class和isa函数同样可以在类目录外使用。表达式
isa(a,’classname’); 检查a是否为指定类的对象。例如,如果p是一个polynom对象,下列每个表达式都为真。
isa(pi,’double’); isa(‘hello’,’char’); isa(p,’polynom’); 在类目录之外,class函数只接受一个参数(只有在构造函数中,class才可有多于一个参数)。 表达式
class(a) 返回一个包含a的类名的字符串。例如,
‘double’, ‘char’, ‘polynom’ class(pi), class(‘hello’), class(p), 用whos函数可以查看MATLAB工作空间中有哪些对象。
1×1 Bytes
Class polynom object display方法 只要没有以分号结束的语句的结果是一个对象,MATLAB就会调用名为display的方法。例如,创建double型的变量a时,MATLAB将调用double的display方法。
5 你应该定义一个display方法,以使得MATLAB在从你的类引用对象时能够在命令行显示其值。既然MATLAB以字符串显示输出,在许多类中,display可以仅仅打印变量的名称,然后用char类型转换方法来打印变量内容或值。你必须定义char方法来将对象的数据转换成字符串。 display方法的例子 有关display方法的例子请查看下列章节: Polynom类的display方法 Asset类的display方法 Stock类的display方法 Portfolio类的display方法 访问对象数据 你需要为你的类编写可以访问对象数据的方法。存取方法有多种实现方式,但所有改变对象数据的方法总是接受一个对象作为输入参数并返回一个数据改变后的新对象。这是必须的,因为MATLAB不支持参数的引用传递(例如,指针)。函数仅能改变其私有的和临时的对象副本。因此,要改变一个已存在的对象,你必须创建一个新的,然后替换那个旧的。 接下来的几节将对set, get, subsasgn和subsref方法的实现技术进行更详细的说明。 set和get方法 set和get方法提供了一种在某些场合方便地访问对象数据的方式。例如,假设你创建了一个MATLAB可以在图中显示箭头的类(可能由已有的MATLAB线和面片对象构成)。 为了保持接口的一致性,你可以定义set和get方法像MATLAB的set和get函数操作内建图形对象那样来操作箭头对象。set和get是动词,表明了它们执行的操作,但将用户与对象内部隔离了开来。 set和get方法的例子 有关set和get方法的例子请查看下列章节:
Asset 类的get方法和Asset类的set方法 Stock类的get方法和Stock类的set方法 属性名方法 除了通常的set方法,你可以编写一个方法来处理对单个属性的赋值。这种方法的名称与属性名称相同。 例如,如果你定义了一个创建emplyee数据对象的类,可能在employee对象中有一个名为salary的字段。那么,你可以定义一个名为salary.m的方法,该方法以一个employee对象和一个值作为输入,并返回设置好指定值的对象。 用subsref和subsasgn进行索引引用 用户类在MATLAB中实现新的数据类型。就像MATLAB内建数据类型那样,通过索引引用来访问对象数据是很有用的。例如,如果A是一个double类的数组,A(i)可以返回A的第i个元素。 作为类的设计者,你可以决定索引引用对对象的含义。例如,假设你定义了一个创建多项式对象的类,这些对象包含了多项式的系数。对多项式对象的索引引用
p(3) 可能返回x3的系数、x=3时多项式的值,或其它的设计预期结果。 通过创建subsref和subsasgn两个类方法,你可以定义类的索引行为。只要对类的对象进行下标引用或赋值,MATLAB就会调用这些方法。如果你没有给类定义这些方法,就没有为该类的对象定义索引功能。 通常,对对象的索引规则与对结构数组的索引规则一样。详情见Structures。 类方法中的行为 如果A是MATLAB基本数据类型之一的数组,那么通过引用索引引用A的某个值会调用MATLAB内建subsref方法。它不会调用你为那种数据类型重载的任何subsref方法。matlab绘图(很全的课件)_百度文库
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
matlab绘图(很全的课件)
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩149页未读,
定制HR最喜欢的简历
你可能喜欢温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(575)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'MATLAB 主要函数指令表(按功能分类)',
blogAbstract:'&&&&& MATLAB 主要函数指令表(按功能分类) &&&&&&& &&&&& 1 常用指令(General Purpose Commands) &&&&& 1.1 通用信息查询(General information) &&&&& demo 演示程序 &&&&& help 在线帮助指令 &&&&& helpbrowser 超文本文档帮助信息 &&&&& helpdesk 超文本文档帮助信息 &&&&& helpwin 打开在线帮助窗 &&&&& info MATLAB 和MathWorks 公司的信息 &&&&& subscribe MATLAB 用户注册 ',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:1,
publishTime:8,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}豆丁微信公众号
君,已阅读到文档的结尾了呢~~
matlab常用函数与常用指令大全[整理版]
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
matlab常用函数与常用指令大全[整理版]
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口

我要回帖

更多关于 matlab gui axes 的文章

 

随机推荐