Me gustaría utilizar una función personalizada de MATLAB en Simulink. Hasta ahora lo he hecho colocando un bloque de función MATLAB incrustado. Sin embargo, si la función personalizada contiene otra función personalizada, el proceso de compilación falla.Implementación de funciones personalizadas de MATLAB en Simulink
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.
¿Existe algún método para implementar la función anterior en la simulación?
Creo que la respuesta de MikeT es correcta, pero se lo ofrezco: no use un bloque de función MATLAB incrustado en su modelo porque este bloque hace que el modelo se ejecute muy lentamente. – Elmoya
Si su modelo se ejecuta lentamente, quizás desee envolver el bloque EML con un diagrama de flujo de estado. Esto eliminará la copia de entradas y salidas en cada paso de tiempo que pueda hacer que las funciones EML estén fuera de los diagramas de flujo de estado (en versiones anteriores de MATLAB , al menos) menos eficiente. –