我在Oop上有點生疏。我有以下代碼。在matlab中使用普通方法
classdef diag2by2
properties
a;
b;
end
methods
function obj = diag2by2(a, b)
obj.a = a;
obj.b = b;
end
function obj = plus(obj1, obj2)
temp = [obj1.a, 0; 0 obj1.b]+ [obj2.a, 0; 0 obj2.b];
obj.a = temp(1,1);
obj.b = temp(2,2);
end
function obj = minus(obj1, obj2)
temp = -1*obj2;
obj = plus(obj1, temp);
end
function obj = mtimes(obj1, obj2)
temp1 = [obj1.a, 0; 0 obj1.b];
temp2 = [obj2.a, 0; 0 obj2.b];
temp3 = temp1*temp2;
obj.a = temp3(1,1);
obj.b = temp3(2,2);
end
function r = matrix(obj)
r = [obj.a, 0; 0 obj.b];
end
end
end
我想創建一個2by2對角矩陣的類。我在定義方法時遇到了問題。我有,方法
function r = matrix(obj)
這應該將我的對象轉換爲對角矩陣。但我得到的錯誤,當我嘗試用這種方法
A = diag2by2(1,2)
A =
diag2by2與性能:
a: 1
b: 2
a.matrix() 沒有合適的方法,屬性或類別 diag2by2的字段矩陣。
有人可以幫助我嗎?
編輯:全班公佈
你可以發佈全班? – chappjc
我已經發布了整個代碼 – Leo04577