结肠

向量创建、数组下标和循环迭代

语法

A(:,n) A(m,:) A(:) A(j:k)

描述

冒号是MATLAB中最有用的运算符之一®.它可以创建向量、下标数组和指定迭代。

例子

xjk创建一个单位空间向量x与元素[j, j + 1, + 2,…,j + m]在哪里m =修复(k-j).如果jk两个都是整数吗[j, + 1,…,k)

例子

xjk创建一个规则间隔的向量x使用为元素之间的增量。向量元素大致等于[j, j + i, j + 2 *我,…,j + m *我]在哪里m =修复((k-j) / i).然而,如果不是整数,则浮点算术起作用,以确定是否结肠包括端点k在向量中,因为k可能不是完全等于j + m *我.如果你指定了非标量数组,那么MATLAB会进行解释我:k作为(1):我(1):k (1)

x =结肠(j, k)x =结肠(j, k)是否有执行命令的替代方法j: k我:k,但很少使用。这些语法支持类的操作符重载。

例子

(:, n)一个(m,:)(:),(j, k)矩阵的公共索引表达式是什么一个包含冒号的。在索引表达式中使用冒号作为下标时,例如(:, n),它作为速记包括所有特定数组维中的下标。为索引而创建带有冒号的vector也很常见,例如(j, k).一些索引表达式结合冒号的两种用法,如(:, j, k)

包含冒号的常见索引表达式有:

  • (:, n)n矩阵的第Th列一个

  • 一个(m,:)矩阵的第一行一个

  • (:: p)p三维阵列页面一个

  • (:)重塑的所有元素一个变成一个列向量。这没有影响,如果一个已经是一个列向量了。

  • (::)重塑的所有元素一个变成一个二维矩阵。这没有影响,如果一个已经是一个矩阵或者向量了。

  • (j, k)使用向量j: k指数为一个因此和这个向量是等价的[(j)、(j + 1),…(k))

  • (:, j, k)包含第一维中的所有下标,但使用向量j: k在第2维中建立索引。这将返回一个带有列的矩阵[(:, j)、(:,j + 1),…(:, k)]

例子

全部折叠

创建一个1到10之间的单位间隔向量。冒号操作符使用默认的自增值+1。

x = 1:10
x =1×101 2 3 4 5 6 7 8 9 10

创建按指定值递增或递减的向量。

创建一个元素递增0.1的向量。

x = 0:0.1:1
x =1×110 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000

创建一个元素减量为-2的向量。

y = 10: 2:0
y =1×610 8 6 4 2

检查几种使用冒号为矩阵建立索引的方法

创建一个3 × 3矩阵。索引第一行。

=魔法(3)
一个=3×38 1 6 3 5 7 4 9 2
: (1)
ans =1×38 1 6

为第二和第三列建立索引。

(: 2:3)
ans =3×21 6 5 7 9

将矩阵重塑为列向量。

(:)
ans =9×18 3 4 1 5 9 6 7 2

在…的上下文中-loop,冒号指定循环迭代。

写一个的值对数值进行平方n1到4之间。

N = 1:4 N²结束
ans = 1
ans = 4
ans = 9
ans = 16

输入参数

全部折叠

开始向量值,指定为实数值标量。如果j < k所以输出向量不是空的j是向量中的第一个元素。

例子:x = 0:5

例子:x = 0:0.5:5

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|字符|datetime|持续时间

结束向量值,指定为实数字标量。k向量中的最后一个值是否只在增量行正好落在上面时才出现k.例如,向量0:5包括5作为最后一个值,但是0:0.3:1不包括值1作为最后一个值,因为增量不与端点对齐。

例子:x = 0:5

例子:x = 0:0.5:5

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|字符|datetime|持续时间

向量元素之间的增量,指定为实数字标量。

例子:x = 0:0.5:5

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|字符|datetime|持续时间

输出参数

全部折叠

规则间隔的向量,返回为行向量。如果j > k,然后x = j。k是一个空矩阵。更一般地说,是语法x = j:我:k返回一个空矩阵:

  • j,或k为空输入

  • 我= = 0

  • 我> 0j > k

  • 我< 0j < k

提示

  • 参考页有如何使用的描述在循环语句的上下文中。

  • linspace与冒号操作符相似吗,但它可以直接控制点的数量,并且总是包括端点。兄弟姐妹函数logspace生成对数间隔值。

  • 当您创建索引到单元格数组或结构数组(例如cellName{:}structName(:)。字段名), MATLAB以逗号分隔的列表返回多个输出。有关更多信息,请参见如何使用逗号分隔的列表

扩展功能

之前介绍过的R2006a