У меня есть следующие Matlab «Класс-Design»:MEX/Matlab: Доступ к objectarray, который является членом другого объекта
classdef foo
properties
a;
b;
end
methods
function obj = myFun(obj)
obj.a = 42; // some calculation takes place here
end
end
end
classdef bar
properties
foos; // this is going to be an array of foos
otherStuff;
end
methods
function obj = someFun(obj)
for i = 1:length(foos)
obj.foos(i) = obj.foos(i).myFun;
end
end
end
end
Как я уже писал, один объект будет иметь целый ряд других объектов в своем классе свойства.
Я пытаюсь переписать это как код C и использовать его с MEX. Теперь мой вопрос: как я могу получить доступ к различным элементам массива foos? Я знаю API-функцию mxGetProperty. С помощью этой функции я могу получить доступ к свойствам каждой из записей массива (например, obj.foos (i) .a), но не к объекту в целом (я хочу иметь obj.foos (i)). Однако для вызова функции-члена мне нужен весь объект (как mxArray *).
Любые идеи, как это сделать?
Благодаря
нет прямой функции MEX для извлечения элемента массива объектов. Вы можете написать вспомогательную функцию в MATLAB, чтобы сделать это, и вместо этого вызывать эту функцию из MEX-функции. – Amro