This example shows how to pass parameters into the MCode block. An input argument to an M-function can be interpreted either as an input port on the MCode block, or as a parameter internal to the block.
The following M-code defines an M-function xl_sconvert that is contained in file xl_sconvert.m:
function dout = xl_sconvert(din, nbits, binpt)
proto = {xlSigned, nbits, binpt};
dout = xfix(proto, din);
The following diagram shows a Subsystem containing two MCode blocks
that use M-function xl_sconvert. The arguments
nbits and binpt of the M-function are specified differently for each block by
passing different parameters to the MCode blocks. The parameters passed to the MCode
block labeled signed convert 1 cause it to convert
the input data from type Fix_16_8 to Fix_10_5 at its output. The parameters passed to the
MCode block labeled signed convert 2 causes it to
convert the input data from type Fix_16_8 to
Fix_8_4 at its output.
To pass parameters to each MCode block in the diagram above, you can
click the Edit M-File button on the block GUI
then set the values for the M-function arguments. The mask for MCode block signed convert 1 is shown below:
The above interface window sets the M-function argument nbits to be 10 and binpt to be 5. The mask for the MCode block signed convert 2 is shown below:
The above interface window sets the M-function argument nbits to be 8 and binpt to be 4.