我有一个MATLAB类,它有一个简单的重载plus
函数,我无法让它返回一个对象。我希望函数将每个字段值一起添加并输出相同类的对象,字段值是两个输入的总和。当我将两个对象一起添加时,我得到一个结构,而不是一个对象。我是班级的新手,我可能做错了;任何帮助都会很棒。
代码如下:
classdef Molar
properties
A = 0;
B = 0;
C = 0;
end
methods
function M = Molar(val)
M.A = val;
M.B = val+1;
M.C = val+2;
end
function M = plus(M1,M2)
M.A = M1.A + M2.A;
M.B = M1.B + M2.B;
M.C = M1.C + M2.C;
end
end
end
当它运行时我会这样做:
>> x = Molar(2)
x =
Molar with properties:
A: 2
B: 3
C: 4
>> y = Molar(3)
y =
Molar with properties:
A: 3
B: 4
C: 5
然后,当我执行struct
操作时,我得到+
。如何让它返回另一个Molar
对象?
>> x+y
ans =
struct with fields:
A: 5
B: 7
C: 9
我想知道是否需要以不同的方式使用构造函数方法? 在这方面的任何帮助将不胜感激。
答案 0 :(得分:3)
第一个参数应该是返回值:
function M = plus(M,M2)
M.A = M.A + M2.A;
M.B = M.B + M2.B;
M.C = M.C + M2.C;
end