colon, :
创建向量、数组下标
说明
示例
使用 fi 作为冒号运算符
当 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
的字长需要额外的位来处理 int8
和 uint8
范围的交集。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 操作数使用冒号运算符
如果任一操作数属于浮点类型,则输出的字长和符号性与 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
会生成相同的错误。
输入参数
j
— 开始操作数
实数标量
开始操作数,指定为实标量整数值 fi
对象或内置数值类型。
如果指定非标量数组,MATLAB 将 j:i:k
解释为 j(1):i(1):k(1)
。
数据类型:fi
|single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
i
— 增量
1 (默认) | 实数标量
增量,指定为实标量整数值 fi
对象或内置数值类型。即使开始操作数 j
和结束操作数 k
均无符号,增量操作数 i
也可以是负值。
数据类型:fi
|single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
k
— 结束操作数
实数标量
结束操作数,指定为实标量整数值 fi
对象或内置数值类型。
数据类型:fi
|single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
输出参数
y
— 等间距向量
实数向量
Fixed-Point Designer™ 使用以下规则确定 y
的数据类型:
数据类型包括输入操作数的定点类型范围的并集。
如果开始或结束操作数有符号,则生成的数据类型也有符号。否则,生成的数据类型无符号。
y
的字长是最小值,因此小数长度为 0,最低有效位的真实值为 1。如果任一操作数属于浮点类型,则
y
的字长和符号性从fi
操作数中派生。如果任一操作数属于定标双精度类型,则
y
是定标双精度数。y
的fimath
与输入操作数的fimath
相同。如果所有
fi
对象的数据类型均为double
,则y
的数据类型是double
。如果所有fi
对象的数据类型均为single
,则y
的数据类型是single
。如果既有double
输入,也有single
输入,但没有定点输入,则输出数据类型为single
。
版本历史记录
在 R2013b 中推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)