int64 in simulink / stateflow?

1 次查看(过去 30 天)
Milan
Milan 2013-9-4
Hi,
I'm working on a simulink model using stateflow charts, there is no option to declare variables to be of the int64 datatype. When I attempt to use int64(var), it gives me an error saying "Cast to 'int64' class is not supported".
Is there a workaround to this that will allow me to use int64 variables in my model?

回答(2 个)

ES
ES 2013-9-4
Matlab supports int64 whereas Simulink/Stateflow does not.
Workaround will be to use two int32 variables.
so your expected value will be UpperInt32Variable * LowerInt32Variable.
You can increment UpperInt32Variable every time the LowerInt32Variable overflows.
  1 个评论
Milan
Milan 2013-9-4
编辑:Milan 2013-9-4
I am multiplying 2 32 bit numbers...what is the correct procedure to multiply 2 32 bit numbers without using a 64 bit variable? I would just get an overflow if the result of the multiplication was higher than 2^31 right?
What is the correct procedure/algorithm to multiply 2 32 bit numbers and store the high 32 bits in one 32 bit variable and low 32 bits in a second 32 bit variable

请先登录,再进行评论。


Andy Bartlett
Andy Bartlett 2020-9-10
Update: 64 bit integer modeling in Stateflow is now available.
Stateflow C support of int64 and uint64 is available as of R2019b.
Stateflow M support of int64 and uint64 is available as of R2020a.
As a side note,
when discussing usage of 64 bit integers in Simulink,
the question of required licenses often comes up.
In R2016b and earlier,
use of 64 bit integers in Simulink requires a Fixed-Point Designer license.
As of R2017a,
usage of 64 bit integers in Simulink does not require any additional licenses.

类别

Help CenterFile Exchange 中查找有关 Stateflow 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by