对象数组方法调度

时间:2009-04-03 18:16:43

标签: matlab matlab-class

在MATLAB的新对象模型(classdef等)中:如果我有一个对象的数组,并且我调用普通方法,那么为每个对象或整个数组调用的方法,即传递给方法的单个对象,还是整个数组?我知道在旧模型中,它被调度为整个数组。

2 个答案:

答案 0 :(得分:6)

如果你有:

classdef MyObject

methods
    function foo(obj)
    ...
end

然后你打电话

>> foo(myObjArray)

然后对foo()的单次调用将接收整个数组。从那里你可以编写代码来处理obj的标量情况或obj的矢量情况。

答案 1 :(得分:-1)

这取决于你的方法是否被矢量化。对于一个简单的例子:

未矢量化

function result = mySimpleMultiply(a,b)

result = a*b;

矢量化

function result = myVectorizedMultiply(a,b)

result = a.*b;