Main Content

colon, :

创建向量、数组下标

说明

示例

y = j:k 返回等间距向量 [j, j+1 ,..., k]。当 j > k 时,j:k 为空。

至少一个冒号操作数必须为 fi 对象。所有冒号操作数都必须为整数值。所有定点操作数都必须进行二进制小数点定标。不支持斜率偏置定标。如果任一操作数是复数,则 colon 函数会生成警告,并且只使用操作数的实部。

y = colon(j,k)y = j:k 相同。

示例

y = j:i:k 返回等间距向量 [j,j+i,j+2i, ...,j+m*i],其中 m = fix((k-j)/i)。当 i == 0i > 0 j > ki < 0j < k 时,y = j:i:k 返回空矩阵。

示例

全部折叠

fi 用作冒号运算符时,所有冒号操作数都必须有整数值。

a = fi(1,0,3,0);	
b = fi(2,0,8,0);	
c = fi(12,0,8,0);	
x = a:b:c
x = 
     1     3     5     7     9    11

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Unsigned
            WordLength: 8
        FractionLength: 0

由于所有输入操作数均无符号,因此 x 无符号且字长为 8。生成的向量的小数长度始终为 0。

a= fi(int8(-1));
b = uint8(255);
c = a:b;
len = c.WordLength
len = 9
signedness = c.Signedness
signedness = 
'Signed'

c 的字长需要额外的位来处理 int8uint8 范围的交集。c 的数据类型为有符号,因为操作数 a 有符号。

如果开始和结束操作数为无符号,则增量操作数可以是负值。

x = fi(4,false):-1:1
x = 
     4     3     2     1

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Unsigned
            WordLength: 16
        FractionLength: 0

如果任一操作数属于浮点类型,则输出的字长和符号性与 fi 操作数相同

x = fi(1):10
x = 
     1     2     3     4     5     6     7     8     9    10

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 16
        FractionLength: 0

x = fi(1):10 等效于 fi(1:10, true, 16, 0),因此 x 有符号且其字长为 16 位。

如果您的代码使用非整数操作数,请重写冒号表达式,使操作数为整数。

以下代码不起作用,因为冒号操作数不是整数值。

Fs = fi(100);
n = 1000;
t  = (0:1/Fs:(n/Fs - 1/Fs));

重写冒号表达式以使用整数操作数。

Fs = fi(100);
n = 1000;
t  = (0:(n-1))/Fs;

如果任一冒号操作数的值超出冒号表达式中使用的数据类型的范围,MATLAB® 就会生成错误。

    y = fi(1,true,8,0):256

MATLAB 生成错误,因为 256 超出了 fi(1,true, 8,0) 的范围。此行为与内置整数的行为匹配。例如,y = int8(1):256 会生成相同的错误。

输入参数

全部折叠

开始操作数,指定为实标量整数值 fi 对象或内置数值类型。

如果指定非标量数组,MATLAB 将 j:i:k 解释为 j(1):i(1):k(1)

数据类型fi |single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

增量,指定为实标量整数值 fi 对象或内置数值类型。即使开始操作数 j 和结束操作数 k 均无符号,增量操作数 i 也可以是负值。

数据类型fi |single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

结束操作数,指定为实标量整数值 fi 对象或内置数值类型。

数据类型fi |single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

输出参数

全部折叠

Fixed-Point Designer™ 使用以下规则确定 y 的数据类型:

  • 数据类型包括输入操作数的定点类型范围的并集。

  • 如果开始或结束操作数有符号,则生成的数据类型也有符号。否则,生成的数据类型无符号。

  • y 的字长是最小值,因此小数长度为 0,最低有效位的真实值为 1。

  • 如果任一操作数属于浮点类型,则 y 的字长和符号性从 fi 操作数中派生。

  • 如果任一操作数属于定标双精度类型,则 y 是定标双精度数。

  • yfimath 与输入操作数的 fimath 相同。

  • 如果所有 fi 对象的数据类型均为 double,则 y 的数据类型是 double。如果所有 fi 对象的数据类型均为 single,则 y 的数据类型是 single。如果既有 double 输入,也有 single 输入,但没有定点输入,则输出数据类型为 single

版本历史记录

在 R2013b 中推出

另请参阅

|