主要内容

结肠

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

语法

x = j:k x = j:i:k A(:,n) A(m,:) A(:) A(j:k)

描述

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

例子

xjk创建一个单位间距的向量x与元素[j, j + 1, + 2,…,j + m]在哪里M = fix(k-j).如果j而且k都是整数,那么这是[j, + 1,…,k)

例子

xjk创建一个规则间距的向量x使用作为元素之间的增量。向量元素大致等于[j, j + i, j + 2 *我,…,j + m *我]在哪里M = fix((k-j)/i).然而,如果不是整数,那么浮点运算起不起作用呢结肠包括端点k在向量中,sincek也许不是完全等于j + m *我.如果指定非标量数组,则由MATLAB解释我:k作为(1):我(1):k (1)

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

例子

(:, n)一个(m,:)(:),(j, k)矩阵的常用索引表达式是什么一个包含冒号的。当您在索引表达式中使用冒号作为下标时,例如(:, n),它作为包含的简写所有特定数组维度中的下标。为了索引的目的,创建带有冒号的向量也很常见,例如(j, k).有些索引表达式结合了冒号的两种用法,如在(:, j, k)

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

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

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

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

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

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

  • (j, k)使用向量j: k索引到一个因此等价于这个向量A(j), A(j+1),…(k))

  • (:, j, k)包含第一个维度中的所有下标,但使用向量j: k在二次元中索引。这将返回一个包含列的矩阵[A(:,j), A(:,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.000

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

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

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

创建一个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 2

将矩阵重塑为列向量。

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

在a的上下文中-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:i:k在以下情况下返回空矩阵:

  • j,或k为空输入

  • I == 0

  • 我> 0而且J > k

  • I < 0而且J < k

提示

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

  • linspace类似于冒号运算符,但它直接控制点的数量,并始终包括端点。兄弟函数logspace生成对数间隔的值。

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

扩展功能

版本历史

R2006a之前介绍过

Baidu
map