Fixed variable range in code translation
3 views (last 30 days)
Show older comments
VaL V6 on 22 Apr 2020
Answered: David Fink on 4 May 2020
I'm trying to translate in C the following code:
function [merging_flag,frameRGB_3] = merging_function(check,frame,frame_2,frameRGB_2)
merging_flag = true;
row = check.frame_shift; % type uint16
colum_DL = check.DL_dimension.width; % type uint16
colum_IR = check.IR_dimension.width; % type uint16
Filler_M_DL = zeros([row colum_DL],'uint8');
Filler_M_IR = zeros([row colum_IR],'uint8');
The error occurs when the coder tries to translate Filler_m_DL e Filler_M_DL:
"Computed maximum size exceeds maximum allowed number of elements (134217728). The computed size is [:65535 x :65535]. Please consider enabling dynamic memory allocation to allow unbounded sizes".
Therefore the coder considers the variables row, colum_DL e column_IR (that are scalars) as the can space between 0 and 65535 (maximum representable value with uint16 type) but I know that those values will space between 0 ans 1000.
Is there a way to define this range for the variables and avoid to allow the dynamic memory allocation?
David Fink on 4 May 2020
Yes, using "assert" statements.
See examples on:
More Answers (0)
Find more on MATLAB Coder in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!