Диспетчеризация массива объектов - PullRequest
1 голос
/ 03 апреля 2009

В новой объектной модели MATLAB (classdef и т. Д.): Если у меня есть массив объекта, и я вызываю обычный метод, это методы, вызываемые для каждого объекта или для всего массива, т.е. объект передан в метод или весь массив? Я знаю, что в старой модели он был отправлен как весь массив.

Ответы [ 2 ]

6 голосов
/ 04 апреля 2009

Если у вас есть:

classdef MyObject

methods
    function foo(obj)
    ...
end

И тогда вы звоните

>> foo(myObjArray)

Тогда единственный вызов foo () получит весь массив. Оттуда вы можете написать код для обработки скалярного регистра obj или векторного регистра obj.

0 голосов
/ 03 апреля 2009

Это зависит от того, является ли ваш метод векторизованным. Для тривиального примера:

Не векторизовано

function result = mySimpleMultiply(a,b)

result = a*b;

Векторизованное

function result = myVectorizedMultiply(a,b)

result = a.*b;
...