Реализация пользовательских функций MATLAB в Simulink - PullRequest
6 голосов
/ 28 апреля 2010

Я хотел бы использовать пользовательскую функцию 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 также являются пользовательскими функциями.

Есть ли способ для реализации вышеуказанной функции в симуляции?

1 Ответ

1 голос
/ 29 апреля 2010

Вам необходимо использовать команду eml.extrinsic для вызова любых внешних функций MATLAB из блока EML. Например, вы можете поместить это в начало вашей функции EML,

eml.extrinsic('getLr', 'initializeLq');

, чтобы эти функции вызывались. Для получения дополнительной информации см. Документацию

.
...