MATLAB Answers


Matlab Function in Simulink not allowing fortran scientific notation?

Asked by Wiley Mosley on 30 Aug 2018
Latest activity Answered by Wiley Mosley on 13 Jun 2019
--Edited for clarity--
In Simulink you can create a constant block with a value of 3.14D2 which will lead to an output of 314.
In Matlab you can create a constant with a value of 3.14D2 which will also give an output of 314.
However, when you place a matlab function block in a simulink model and within that function you define a variable equal to 3.14D2 the resulting output is 3.14
Is there something I am needing to change to allow this function within a model to work correctly without manually changing the 3.14D2 to 3.14E2? Is there a setting to reinstate this functionality of utilizing Fortran notation in Matlab 2017b?
Summary: Functions originally in Fortran, recreated in matlab function blocks (2015a), attempting to update to 2017b. Lots of functions, lots of variables, was not originally written by me.
I would expect Matlab + Simulink to handle this gracefully, but it does not.


That doesn't look like valid code block for the purpose, but presume that's just typo in writing "air code"...
From the description it looks like the function internally is correct but the value somehow is being reinterpreted from the text string instead of as a stored variable by Simulink.
I don't have Simulink (seems like very few of the "regulars" do, afaict) so can't poke around...
What happens if the function is instead
function out=name()
? Does that function also exhibit the problem?
Yes, utilizing the debug features inside the matlab function inside the simulink model y=3.14D2 results in value of 3.14.
Yeech! As James said, that's nasty!
Bug city, indeed. :(
This one will be most interesting to see what TMW's response is if it is, in fact, perceived as anything but a bug.

Sign in to comment.

1 Answer

Answer by Wiley Mosley on 13 Jun 2019
 Accepted Answer

This was successfully addresed in a bug fix and update to 2019a.


Sign in to comment.