投变量不同的数据类型

描述

B =流延(一个,'喜欢',p转换一个相同的numerictype,复杂性(实数或复数),和fimathp。如果一个p都是真实的,那么b也是真实的。除此以外,b是复杂的。

例子

全部收缩

定义一个标量的8位整数。

一个= INT8(5);

创建签名科幻用的字长对象24和的分数长度12

P =科幻([],1,24,12);

兑换一个与固定点numerictype,复杂性(实数或复数),和fimath指定的科幻目的,p

B =流延(一,'喜欢',p)的
B = 5 DataTypeMode:定点:二进制点缩放符号性:签字字长:24 FractionLength:12

定义那些的一个2×3矩阵。

A =酮(2,3);

创建签名科幻用的字长对象16和的分数长度8

P =科幻([],1,16,8);

兑换一个到相同的数据类型和复杂性(实数或复数),为p

B =流延(A,'喜欢',p)的
B =2×3对象1 1 1 1 1 1 DataTypeMode:定点:二进制点缩放符号性:签字字长:16 FractionLength:8

编写一个MATLAB®算法,可以在不改变算法本身具有不同的数据类型上运行。为了重复利用算法,从该算法分别定义的数据类型。

这种方法允许你通过运行带有浮点数据类型的算法来确定一个基准。然后,您可以测试不同的定点数据类型的算法和比较定点行为基线未做任何修改原始MATLAB代码。

编写一个MATLAB功能,my_filter,其采用输入参数,Ť,这是定义系数和输入和输出数据的数据类型的结构。

功能[Y,Z] = my_filter(B,A,X,Z,T)%投射系数给系数类型B =流延(B,'喜欢',T.coeffs);一个铸造=(A,'喜欢',T.coeffs);%使用零与数据类型创建输出Y =零(大小(x)的'喜欢',T.data);对于I = 1:长度(X)Y(I)= B(1)* X(I)+ Z(1);Z(1)= B(2)* X(I)+ Z(2) - 一(2)* Y(I);Z(2)= B(3)* X(ⅰ) - 一(3)* Y(I);结束结束

编写一个MATLAB功能,zeros_ones_cast_example,即通话my_filter与浮点步骤输入和一个定点步骤输入,然后将结果进行比较。

功能zeros_ones_cast_example%定义系数与规格的过滤器%并[b,A] =黄油(2,0.25)B = [0.097631072937818 0.195262145875635 0.097631072937818];A = [1.000000000000000 -0.942809041582063 0.333333333333333];%定义的浮点类型T_float.coeffs =双([]);T_float.data =双([]);%创建步骤输入使用那些与%浮点数据类型T = 0:20;x_float =酮(尺寸(T),'喜欢',T_float.data);%初始化使用与零的状态%浮点数据类型z_float =零(1,2,'喜欢',T_float.data);%执行浮点算法y_float = my_filter(B,A,x_float,z_float,T_float);%定义定点类型T_fixed.coeffs =科幻([],真实,8,6);T_fixed.data =科幻([],真实,8,6);%创建步骤输入使用那些与%定点数据类型x_fixed =酮(尺寸(T),'喜欢',T_fixed.data);%初始化使用与零的状态%定点数据类型z_fixed =零(1,2,'喜欢',T_fixed.data);%运行定点算法y_fixed = my_filter(B,A,x_fixed,z_fixed,T_fixed);%对比结果coder.extrinsic('CLF'“插曲”'情节''传说')CLF副区(211)情节(T,y_float,“合作”,T,y_fixed,“KX-”)图例(“浮点”输出“定点输出”)标题(“阶跃响应”)副区(212)情节(T,y_float  - 双(y_fixed),“RS-”)图例('错误')图(GCF)结束

输入参数

全部收缩

变量,指定为科幻对象或数字变量。

复数支持:是万博1manbetx

原型,指定为科幻对象或数字变量。要使用原型来指定一个复杂的对象,必须指定为原型的值。否则,你并不需要指定的值。

复数支持:是万博1manbetx

提示

使用B =流延(一, '喜欢',p)的语法从算法的代码分别指定数据类型,您可以:

  • 重新使用不同的数据类型的算法的代码。

  • 保持你的算法与数据类型规格和switch语句不同的数据类型整洁。

  • 提高你的算法代码的可读性。

  • 定点和浮点数据类型之间进行切换来比较的基线。

  • 的固定点设置的变化之间进行切换,而不改变算法代码。

介绍了在R2013a