1

使用定点许可证可以很容易地在 Matlab 中创建任意定点数据类型,即带有 16 个小数位的有符号 32 位数字:

custom_sfix = fixdt(1,32,16)

custom_sfix =

Simulink.NumericType
    DataTypeMode: 'Fixed-point: binary point scaling'
      Signedness: 'Signed'
      WordLength: 32
  FractionLength: 16
         IsAlias: false
       DataScope: 'Auto'
      HeaderFile: ''
     Description: ''

如何在 matlab 中创建这种类型的值?

对于内置类型,它只是a = int8(5);或者a = uint32(45); 我也尝试过类型转换,但这似乎只接受内置数据类型。

>> Y = typecast(12.5, custom_sfix )
Error using typecast
The second input argument must be a character array.

>> Y = typecast(12.5, 'fixdt(1,32,16)' )
Error using typecast
Unsupported class.
4

1 回答 1

1

我相信fixdt是用于在 Simulink 而不是 MATLAB 中创建定点数据类型信号。然后,您可以将信号定义为该数据类型,如http://www.mathworks.co.uk/help/simulink/ug/working-with-data-types.html#f14-90565中所示。

如果您想在 MATLAB 中创建定点对象,您可能想fi改用它。文档中也有铸造示例。

于 2013-10-17T07:56:14.123 回答