MATLAB: Double to Logical convertion in Simulink

booleandata type conversiondoubleMATLABsimulink

Dear friends!
So i have an array of boolean like this:
[0 1 0 1 1 1 1 0 0 1 0]
If you plot it in Matlab, you get something like this:
And the values are exactly 0 and 1.
Now I put this array into a .mat file and send it to a Simulink model, where there is a function that actually takes boolean values, so i use conversion like this:
Now, if you plot the input array of 1 and 0 alongside the converted values, you will get this:
Notice, that most of the values are converted correctly, while at the end of the array, some values of the 'actual' array, are not quite zero, but 1.11e-15. Since they are not zero, I believe, they get converted into a '1' in boolean terms. The lower figure shows a zoomed in part of one of the points.
So, my question is why, oh, why is it like this?

Best Answer

  1. Change the settings of the "From File" block. Do not do interpolation or extrapolation.
  2. The boolean data type could be saved with the .mat file, so you don't need the data type conversion block.