Pregunta

Me gustaría utilizar una función personalizada en MATLAB Simulink. Hasta ahora lo he hecho mediante la colocación de un bloque de funciones de MATLAB embebido. Sin embargo, si la función personalizada contiene otra función personalizada falla el proceso de compilación.

Aquí está el ejemplo de la función que estoy tratando de incrustar en la simulación:

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;

donde initializeLq y getLr son funciones personalizadas también.

¿Hay un método para implementar la función anterior en la simulación?

¿Fue útil?

Solución

Se necesita usar el comando eml.extrinsic para llamar a las funciones de MATLAB externos de un bloque de EML. Por ejemplo, se puede poner esto en la parte superior de su función EML,

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

para permitir que esas funciones a ser llamados. Para obtener más información, consulte la documentación

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top