文档

sub2ind

将下标转换为线性索引

描述

例子

印第安= sub2ind(SZ,,,,,,,,上校返回线性索引印第安对应于行中的行和列下标上校对于大小的矩阵SZ。这里SZ是一个有两个元素的向量,其中SZ(1)指定行的数量和SZ(2)指定列数。

例子

印第安= sub2ind(SZ,,,,i1,i2,...,在返回线性索引印第安对应于多维下标n数组i1,i2,...,在对于大小的多维阵列SZ。这里SZ是一个矢量n指定每个数组尺寸的大小的元素。

例子

全部收缩

可以如下所示,从下标(按位置索引)到线性索引的映射到线性索引。

在3 x-3矩阵中指定行和列下标。将下标转换为线性索引。

行= [1 2 3 1];col = [2 2 2 3];sz = [3 3];ind = sub2ind(SZ,Row,col)
ind =1×44 5 6 7

从下标的映射到2 by-2 by-2数组的线性索引,可以如下所示。

在2 by-2-by-2数组中指定行,列和页面订阅。将下标转换为线性索引。

i1 = [1 2 1 2];i2 = [2 2 1 1];i3 = [1 1 2 2];sz = [2 2 2];ind = sub2ind(sz,i1,i2,i3)
ind =1×43 4 5 6

将3-D数组的下标转换为单个线性索引。

创建一个数组,并找到与(2,1,2)位置中元素相对应的线性索引。

a = rand(3,4,2);LineArind = sub2ind(size(a),2,1,2)
线性焦点= 14

检查两个索引版本是否涉及同一元素。

A(2,1,2)
ANS = 0.4854
A(14)
ANS = 0.4854

输入参数

全部收缩

数组的大小,指定为正整数的向量。该向量的每个元素指示相应维度的大小。例如,[2 3 4]定义一个2 x-3 x-4阵列。

数据类型:单身的|双倍的|int8|INT16|INT32|INT64|UINT8|UINT16|UINT32|Uint64

行下标,指定为标量,向量,矩阵或多维数组。的大小必须与大小相同上校

数据类型:单身的|双倍的|int8|INT16|INT32|INT64|UINT8|UINT16|UINT32|Uint64

列下标,指定为标量,向量,矩阵或多维数组。的大小上校必须与大小相同

数据类型:单身的|双倍的|int8|INT16|INT32|INT64|UINT8|UINT16|UINT32|Uint64

多维下标,指定为标量,矢量,矩阵或多维阵列。每个数组i1,i2,…,在必须具有相同的大小。

数据类型:单身的|双倍的|int8|INT16|INT32|INT64|UINT8|UINT16|UINT32|Uint64

输出参数

全部收缩

线性索引,指定为标量,矢量,矩阵或多维阵列。的大小印第安与输入的大小相同,,,,上校, 或者i1,i2,…,在

数据类型:双倍的

算法

对于数组一个, 如果ind = sub2ind(size(a),i1,…,in), 然后a(ind(k))= a(i1(k),…,in(k))对所有人k

扩展功能

也可以看看

||

在R2006a之前引入