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 結束一個函數)
  • 調用時,先實例化一個類,然后調用子函數即可
  • 子函數內部可以繼續調用類函數下的其他子函數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM