is not guaranteed to have exactly the same number of elements in generated code.
Why are you doing "for comp=1:s; end" without any code in there? Why are you "if dx>Xstep(NR)" after that with no code inside the "if" ?
Your code generates index out of range even in MATLAB.
Your dx is greater than any Xstep() value. It is not surprising that you go past the end of the array.