Я хотел бы использовать пользовательскую функцию MATLAB в Simulink. До сих пор я сделал это путем размещения встроенного функционального блока MATLAB. Однако, если пользовательская функция содержит другую пользовательскую функцию сбои процесса компиляции.
Вот пример функции, которую я пытаюсь встроить в моделирование:
function [c, d, iterationsCount] = decodeLDPC(y, H, variance)
Lci = initializeLq(y, H, variance);
Lr = getLr(Lci);
[Lq, c] = getLq(Lci, H, Lr);
iterationsCount = 1;
while(sum(mod(c * H', 2)) ~= 0)
Lr = getLr(Lq);
[Lq, c] = getLq(Lq, H, Lr);
iterationsCount = iterationsCount + 1;
end;
G = getGeneratorMatrix(H);
d = c/G;
где initializeLq
и getLr
пользовательские функции также.
Существует ли метод для реализации вышеупомянутой функции на моделировании?
Вам необходимо использовать команду eml.extrinsic для вызова любых внешних функций MATLAB из блока EML. Например, вы можете поместить это в начало вашей функции EML,
eml.extrinsic('getLr', 'initializeLq');
, чтобы разрешить вызов этих функций. Для получения дополнительной информации см. Документацию