Matlab脚本运算符重载

时间:2014-04-16 07:19:47

标签: matlab

我想知道是否可以替换它:

function y = par(Z1,Z2)
y=1./(1./Z1+1./Z2);
return;

某种"运算符重载"就像在C ++语言中一样。所以我们可以说它可以调用函数" Z1#Z2"而不是" par(Z1,Z2)"

2 个答案:

答案 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