Matlab中如何建立类函数?

今天偶然发现了Matlab可以像Python一样,有类函数的概念。具体这么做:

需求

假设现在需要设计一个数学计算类,类下面可以自己定义加减乘除,然后调用这个类实现混合运算。

实现

创建一个 my_math.m (即和类函数名字一样,这是matlab脚本的传统要求) 脚本文件,内容如下:

%% 定义类函数
function m = my_math
m.add = @my_add;
m.del = @my_del;
m.mult = @my_mult;
m.mix = @my_mix;
end

%% 定义加法
function out = my_add(x,y)
out = x+y;
end

%% 定义减法
function out = my_del(x,y)
out = x-y;
end

%% 定义乘法
function out = my_mult(x,y)
out = x*y;
end

%% 定义混合运算
function out = my_mix(x,y)
m = my_math;  % 实例化
out = m.mult(m.add(x,y),m.del(x,y));
end

然后你可以在控制台调用它:

>> m=my_math;
>> m.mix(3,1)
ans =

     8

总结

  • 构造类的基本流程就是 先定义类函数,在类函数里构造子函数,并通过句柄 @ 对应的函数
  • 子函数可以独立存在,贴到类函数下面(注意函数要有完整的结构,用 end 结束一个函数)
  • 调用时,先实例化一个类,然后调用子函数即可
  • 子函数内部可以继续调用类函数下的其他子函数
posted @ 2021-03-12 12:35  GShang  阅读(794)  评论(0编辑  收藏  举报