I used the clibgen.generateLibraryDefinition to generate the Matlab interface for C++ libraries.
I applied it in a Matlab function and it worked well.
However, when I tried to use it in the Matlab Simulink with the Matlab function block, it gave errors " Attempt to extract field 'i' from 'mxArray'. "
Is that anything I'm missing to add in the Simulink?
Thanks!

function cube = fcn(size_x, size_y, range_x_min, range_x_max, ...
range_y_min, range_y_max, power, ...
transmitter_height, receiver_height, ...
transmitter_position, frequency)
coder.extrinsic('clib.Wave.Wave.EMWave');
coder.extrinsic('clib.Wave.Wave.Index');
coder.extrinsic('clib.Wave.Wave.Vec2d');
coder.extrinsic('clib.Wave.Wave.Terrain');
coder.extrinsic('clib.Wave.Wave.Transimtter');
coder.extrinsic('clib.Wave.Wave.Source');
coder.extrinsic('clib.Wave.Wave.Cube');
coder.extrinsic('clib.Wave.Wave.Terrain');
coder.extrinsic('clib.Wave.Wave.Ray');
index = clib.Wave.Wave.Index;
radio_wave = clib.Wave.Wave.EMWave;
terrain = clib.Wave.Wave.Terrain(200,200,range_x_min,range_y_min,range_x_max,range_y_max);
index.i = 1;
index.j = 1;
% radio_wave.transmitter.set_power(1000);
% radio_wave.transmitter.set_height(150.0);
% radio_wave.transmitter.set_number_of_discrete_rays(7200);
%code.varsize('cube',[1 size_x],[1 size_y]);
cube = zeros(200,200);
end