完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
很少听说matlab中类的概念,这里悄悄的告诉的大家,其实MATLAB也支持面向对象编程,只是使用的人不多而已。
对于编写一般简单的数学算法程序,当然基本用不到面向对象编程的概念,所以也就不需要使用MATLAB的类定义了。可是如果应用MATLAB开发具有工程应用型的程序,使用面向对象编程会具有不可比拟的优势。 懂C++的朋友应该都知道,C++有一个static成员,static成员是独立于具体的类对象的,是该类所有实例(instance)共享的。这个static成员有什么好处呢?static成员变量可以用来统计类实例的个数(当然还可以有其它作用,自己发挥吧),因为有些类会严格控制实例的个数。static成员函数在不创建类对象的时候直接调用。 很不幸的是MATLAB不支持static成员变量,只能定义static成员函数,于是很多在C++中轻而易取实现的功能,在MATLAB中却成了捉襟见肘!
上面类定义的count是具体类对象的成员变量,每个类对象的取值都可以不一样的,因此不能用来统计类对象的个数,MATLAB中只有constant变量才是独立于类对象的,于是如下修改
但是问题又来了,constant变量顾名思义,它的值是不能修改的,看来努力还是要白费了??不要灰心一切事情都有转机的,不幸中的万幸,MATLAB提供了句柄类(hande class)这个概念,句柄有点类似于C++中的指针或者引用的概念,但是两者不同,不过偶不介意你将句柄当成MATLAB中的引用。这就让我们依稀看到了黎明的曙光。 现在假如这个constant变量是一个句柄呢,由于constant变量的值是不能修改,这是铁定的,因此引用哪个变量也是没法修改的,但是没有限定这个引用变量的内容不能修改呀。现在问题又来了,如何创建句柄呢,嗯MATLAB提供了几个超类,其中handle超类是属于句柄型的。好下面我们创建一个句柄类
当然需要修改下student类了
这样你每次创建一个student类,那么会自动统计,我们可以通过student.count.number来显示创建的实例个数,假设创建了一个student类对象sobj,那么可以通过sobj.index来访问当前类对象的创建编号。 |
|
|
|
使用simulink进行三相短路故障分析时,各参数应该如何设置
1257 浏览 1 评论
想请教一下图中是simulink的什么模块,需要这种三段斜率函数模块但没找到在哪
1393 浏览 1 评论
2309 浏览 1 评论
200圆!求助大佬给一份VSG并网和离网模式的simulink仿真
2571 浏览 0 评论
MATLAB(3)--矩阵的引用(sub2ind、ind2sub、reshape函数使用)
3402 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 23:46 , Processed in 0.862445 second(s), Total 66, Slave 49 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号