我想知道是否可以替换它:
function y = par(Z1,Z2)
y=1./(1./Z1+1./Z2);
return;
某种"运算符重载"就像在C ++语言中一样。所以我们可以说它可以调用函数" Z1#Z2"而不是" par(Z1,Z2)"
答案 0 :(得分:4)
以下是一个例子:
classdef myClass < double
methods
%// constructor
function this = myClass(varargin)
this = this@double(varargin{:});
end
%// Special syntax for harmonic mean
function new = mldivide(this, other)
new = this.*other./(this + other);
end
end
end
用法:
>> Z1 = myClass(rand(4));
>> Z2 = myClass(rand(4));
>> Z3 = Z1 \ Z2; %// calls your harmonic mean function
答案 1 :(得分:1)
MATLAB确实支持运算符重载,但不支持你想象的方式。运算符重载只能在您在MATLAB中创建的自定义类上执行。
结帐http://www.mathworks.com/help/matlab/matlab_oop/implementing-operators-for-your-class.html。如果您真的想要进行运算符重载,首先需要了解MATLAB的面向对象编程范例。
点击此链接:http://www.mathworks.com/help/matlab/object-oriented-programming.html