【发布时间】:2010-10-17 10:27:24
【问题描述】:
在MATLAB的新对象模型中(classdef等):如果我有一个对象的数组,并且我调用了一个普通的方法,是为每个对象调用的方法,还是为整个数组,即单个传递给方法的对象,还是整个数组?我知道在旧模型中,它是作为整个数组分派的。
【问题讨论】:
标签: matlab matlab-class
在MATLAB的新对象模型中(classdef等):如果我有一个对象的数组,并且我调用了一个普通的方法,是为每个对象调用的方法,还是为整个数组,即单个传递给方法的对象,还是整个数组?我知道在旧模型中,它是作为整个数组分派的。
【问题讨论】:
标签: matlab matlab-class
如果你有:
classdef MyObject
methods
function foo(obj)
...
end
然后你打电话
>> foo(myObjArray)
然后对 foo() 的单个调用将接收整个数组。从那里您可以编写代码来处理 obj 的标量情况或 obj 的向量情况。
【讨论】:
这取决于您的方法是否是矢量化的。举个简单的例子:
function result = mySimpleMultiply(a,b)
result = a*b;
function result = myVectorizedMultiply(a,b)
result = a.*b;
【讨论】: