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