700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Matlab 类函数基本运用

Matlab 类函数基本运用

时间:2023-04-15 13:59:22

相关推荐

Matlab 类函数基本运用

有时候常看文献附带得matlab代码的时候,经常会遇到有一些m文件是类函数,这引起我的注意,也想适当的学习下,以后自己用的时候也比较方便,把相关的函数都放在一个类中,不必有那么多冗杂的文件。

本文只是笔者浅显的研究下写成,只是探讨怎么正确的去用,但是高级用法或者理论上的错误还请海涵,也算是我自己记录下用法,忘记了的话还能自己看看,算是笔记了。

类函数的构造

首先感谢这篇博主的总结:

matlab——之class类(详细总结)_注释远方的博客-CSDN博客_matlab 类

先举个例子

classdef (AllowedSubclasses = ?lxx) lx < handle%<是继承的意思%这个是帮助内容 在函数名下方写的注释就是帮助内容%propertiesa endmethodsfunction x = lx(var) %类定义 'lx' 最多只能定义一个构造函数。x.a = var;endendmethods(Static) %要被引用必须加(Static),且引用的方式为lx.lx1function x = lx1(var)x.a = var + 1;endfunction x = lx2(var)x = var + 1;endfunction x = lx3(var)x = lx4(var);endendend

function x = lx4(var)x = var;end

classdef lxx < lx %继承lxpropertiescendmethods(Static)function x = lx1(var)x = lx1@lx(var); %继承lx里的lx1计算后的属性值x.c = var + 2;endendend

clearimport lx.*; % 有这句话就不用lx.lx1了直接用lx1 A = lx(10); %类定义 'lx' 最多只能定义一个构造函数。B = lx.lx1(10);%类函数B1 = lxx.lx1(10);C = lxxx(10); %不写handle类对象间的赋值操作,会引发一次所有属性值的拷贝C1 = C;C1.a = 11;A1 = A; %handle类的对象在赋值时,不创建新的拷贝,只复制一个句柄A1.a = 12; %会让A里的也变成12,就像是指针aa = lx.lx2(10);aa1 = lx.lx3(10);help lx

首先在新建的脚本里,使用classdef就可以创建一个类,后面lx就是类名。

properties是定义一个类属性变量,它可以在整个类函数中使用。

感觉也没什么能说的,就说几个注意的地方吧。

1.在类函数中,只能有一个名字为类函数名的构造函数

2.我尝试了下,构造函数和成员函数中都不能用其他的成员函数,只能引用非此类的函数。

3.method要使用Static,才能在主程序中使用method里面的函数。

4.关于继承,继承的使用大概是我第三部分代码,这么使用,定义类函数名的时候要用(< 要继承的类),然后在写成员函数的时候,假设如果成员函数a要继承 被继承类函数b里面的成员函数c,a和c的名字要一样,要用(a的名字@被继承的类b名字(a函数的参数))这样的格式给a函数中变量赋值。

5.<号是继承的意思,有个<handle的用法,如果使用了这个,那么handle类的对象在赋值时,不创建新的拷贝,只复制一个句柄,如果a = b,如果更改b值,a也会改。

6.使用import 类函数名.* 可以直接使用其中的成员函数,不需要如lx.lx1这样的写法。

7.函数的help可以直接在函数下面写注释,就是help的内容。

测试代码是随意写的,只是为了试试功能。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。