- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Matlab基础用法小结
(3) 字符串与字符串矩阵
? MATLAB 的字符串是由单引号括起来的。如可以使用下面的命令赋值
? strA=This is a string.
? 多个字符串可以用 str2mat() 函数构造出字符串矩阵。如 B=str2mat(strA, ksa saj,aa);字符串变量可以由下表中的命令进行操作:
命令 意义 命令 意义 strcmp(A,B) 比较A和B字符串是否相同。 findstr(A,B) 测试A是否为B的子字符串,或反过来 strrep(A,s1,s2) 在A中用s2替换s1 length(A) 字符串A的长度 deblank(A) 删除A字符串尾部的空格 double(A) 字符串转换双精度数据 (4) 单元数据结构
? 用类似矩阵的记号将给复杂的数据结构纳入一个变量之下。和矩阵中的圆括号表示下标类似,单元数组由大括号表示下标。
B={1,Alan Shearer,180,[100, 80, 75; 77, 60, 92; 67, 28, 90; 100, 89, 78]}B =?? [1] Alan Shearer [180] [4x3 double]
访问单元数组应该由大括号进行,如第 4 单元中的元素可以由下面的语句得出
B{4}ans =? 100?? 80??? 75? 77??? 60??? 92? 67??? 28??? 90? 100?? 89??? 78
(5) 结构体
? MATLAB 的结构体有点象 C 语言的结构体数据结构。每个成员变量用点号表示,如 A.p 表示 A 变量的 p 成员变量。获得该成员比 C 更直观,仍用 A.p 访问,而不用 A-p。用下面的语句可以建立一个小型的数据库。
student_rec.number=1;student_rec.name=Alan Shearer;student_rec.height=180;student_rec.test=[100, 80, 75; 77, 60, 92; 67, 28, 90; 100, 89, 78]; student_recstudent_rec =? number: 1? name: Alan Shearer? height: 180? test: [4x3 double]
其中 test 成员为单元型数据。删除成员变量可以由 rmfield() 函数进行,添加成员变量可以直接由赋值语句即可。另外数据读取还可以由 setfield 和 getfield 函数完成。
(6) 类与对象
? 类与对象是 MATLAB 5.* 开始引入的数据结构。在 MATLAB 手册中定义了一各很好的类 -- 多项式类。该例子值得细读,去体会类和对象的定义,重载函数编写等信息。事实上,在实际工具箱设计中,用到了很多的类,例如在控制系统工具箱中定义了 LTI (线性时不变系统) 类,并在此基础上定义了其子类:传递函数类 TF, 状态方程类 SS, 零极点类 ZPK 和频率响应类 FR。
举例:我们将通过一个例子来介绍类的构造。 在 MATLAB 语言使用手册中给出了一个很有代表性的例子:多项式类的建立问题。假设我们想为多项式建立一个单独的类,重新定义加、减、乘及乘方等运算,并定义其显示方式。那么建立一个类至少应该执行下面的步骤:(这个例子更详细的情况请参考 MATLAB 手册)
首先应该选定一个恰当的名字,例如这里的多项式类可选择为 polynom。
以这个名字建立一个子目录,目录的名字前加 @。对本例来说,即应该在当前的工作目录下建立 @polynom 子目录,而这个目录无需在 MATLAB 路径下再指定。
编写一个引导函数,函数名应该和类同名。定义类的使用方法:function p = polynom(a)if nargin == 0p.c = []; p = class(p,polynom);elseif isa(a,polynom), p = a;else,p.c = a(:).; p = class(p,polynom);end可以看出,本函数分三种情况加以考虑:① 如果不给输入变量,则建立一个空的多项式;② 如果输入变量 a 已经为多项式类,则将它直接传送给输出变量 p;③ 如果 a 为向量,则将此向量变换成行向量,再构造成一个多项式对象。
如果想正确地显示新定义的类,则必需首先定义 display() 函数,并对新定义的类重新定义其基本运算。对多项式来说,我们可以如下定义有关的函数:
要改变显示函数的定义,则需在此目录下重新建立一个新函数 display()。这种重新定义函数的方法又称为函数的重载。显示函数可以如
文档评论(0)