views:

121

answers:

2

Hi,

I would like to use custom Matlab function in Simulink. So far I have done it by placing Embedded Matlab Fuction block. However if the custom function contains another custom function the compile process fails.

Here is the example of function I am trying to embed in the simulation:

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;

where initializeLq and getLr are custom functions as well.

I would be very thankful if anyone could suggest a method to implement the above function in the simulation.

Thank you.

+1  A: 

You need to use the command eml.extrinsic to call any external MATLAB functions from an EML block. For example, you can put this at the top of your EML function,

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

to allow those functions to be called. For more information, see the documentation

MikeT
A: 

i think MikeT's answer is correct, but i offer to you do't use embedded matlab function block in your model because this block causes model runs very slow.

Elmoya

related questions