那些

创建具有定点特性全部为阵列

描述

X =酮( '喜欢',p返回标1与同numerictype,复杂性(实数或复数),和fimathp

X =酮(ñ,'喜欢',p返回ñ-通过-ñ的像的阵列p

X =酮(SZ1,...,SZN,'喜欢',p返回SZ1-by -...-逐SZN的像的阵列p

X =酮(SZ,'喜欢',p返回的像的阵列p。大小矢量,SZ,定义大小(X)

例子

全部收缩

与指定numerictype创建2×3阵列的那些和fimath属性。

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

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

创建一个2×-3-阵列的那些具有相同numerictype性质p

X =酮(2,3,'喜欢',p)的
X =2×3对象1 1 1 1 1 1 DataTypeMode:定点:二进制点缩放符号性:签字字长:24 FractionLength:12

定义一个3乘2阵列一个

A = [1 4;2 5;3 6];SZ =尺寸(A)
SZ =1×23 2

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

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

创建者的阵列的尺寸与相同一个并具有相同的numerictype性质p

X =酮(SZ,'喜欢',p)的
X =3×2对象1 1 1 1 1 1 DataTypeMode:定点:二进制点缩放符号性:签字字长:24 FractionLength:12

与指定numerictype创建一个4×4阵列的那些和fimath属性。

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

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

创建一个4×4阵列的那些具有相同numerictype性质p

X =酮(4,'喜欢',p)的
X =4×4的对象1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 DataTypeMode:定点:二进制点缩放符号性:签字字长:24 FractionLength:12

创建签名科幻与16的字长,15级分长度和对象OverflowAction调成

格式P =科幻([],1,16,15,'OverflowAction''包');

用相同的创建一个2×2阵列的那些numerictype属性p

X =酮(2,'喜欢',p)的
X =2×2对象0.999969482421875 0.999969482421875 0.999969482421875 0.999969482421875 DataTypeMode:定点:二进制点缩放符号性:签字字长:16 FractionLength:15 RoundingMethod:最近OverflowAction:裹ProductMode:FullPrecision SumMode:FullPrecision

1不能通过的数据类型来表示p,因此该值饱和。输出科幻目的X具有相同numerictypefimath属性p

创建一个标定点1是不是真正的价值,而是很复杂像现有阵列。

定义一个复杂科幻目的。

P =科幻([1 + 2I 3i的],1,24,12);

创建一个标1这是复杂的像p

X =酮('喜欢',p)的
X = 1.0000 + 0.0000i DataTypeMode:定点:二进制点缩放符号性:签字字长:24 FractionLength:12

编写一个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)结束

输入参数

全部收缩

方阵的大小,指定为整数值,定义了输出为正方形,正乘n那些的矩阵。

  • 如果ñ是零,X是一个空矩阵。

  • 如果ñ为负,它被当作零。

数据类型:||INT8|INT16|INT32|Int64的|UINT8|UINT16|UINT32|UINT64

每个维度的大小,指定为两个或两个以上的整数值,定义X作为SZ1-通过...-逐SZN阵列。

  • 如果任何尺寸的大小是零,X为空数组。

  • 如果任何尺寸的大小为负,则视为零。

  • 如果任何尾随的尺寸大于二有一个的大小,输出,X不包括那些尺寸。

数据类型:||INT8|INT16|INT32|Int64的|UINT8|UINT16|UINT32|UINT64

输出尺寸,指定为整数值的行向量。该向量中的每个元素表示对应的尺寸的大小。

  • 如果任何尺寸的大小是零,X为空数组。

  • 如果任何尺寸的大小为负,则视为零。

  • 如果任何尾随的尺寸大于二有一个的大小,输出,X不包括那些尺寸。

例:SZ = [2,3,4]定义X作为2×3×4阵列。

数据类型:||INT8|INT16|INT32|Int64的|UINT8|UINT16|UINT32|UINT64

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

如果值1溢出数字类型的p时,输出达到饱和而不考虑指定的OverflowAction附加的属性fimath。在输出服从附加的规则执行的所有后续操作fimath

复数支持:是万博1manbetx

提示

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

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

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

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

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

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

介绍了在R2013a