WHY -1 IS USED IN THE BLOCKS FOR INHERITING SAMPLETIME

-1 IS USED FOR INHERTING THE SAMPLE TIME OF PREVIOUS BLOCK AND WHY -1 IS USED TO DEFINE THAT

Answers (1)

Sample times are stored as double precision numbers. Any finite positive double precision number might be a valid sample time.
The possible representations for "inherited" are thus limited to 0, negative numbers, or the non-finite values +inf, -inf, or nan. 0 is, though used for other purposes (involving discrete time) so the choices became a negative number or a non-finite number.
Of these possibilities, the shortest to write are -1 through -9, at two characters each, whereas inf and nan need three and -inf needs four characters. Furthermore, in many instructions there is a separate internal path for processing nan so nan is slower than finite values. For example you cannot use "if sampletime == nan" because nan has a special path for all relational operations that say that the results of a test involving nan are always false.
So for simplicity and performance, the choices were -1 through -9. And there was no particular reason to choose anything other than -1 (which is arguably also the easiest for users to remember.)
If I recall correctly, -2 and -3 are also used internally for some purposes.

Products

Release

R2021a

Tags

Asked:

on 31 Oct 2022

Answered:

on 31 Oct 2022

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!