主要内容

sub2ind.

将下标转换为线性索引

描述

例子

印第安纳州= sub2ind(SZ.col的)返回线性指标印第安纳州对应于中的行和列下标col对于大小矩阵SZ.。这里SZ.是矢量与两个元素,在哪里SZ(1)指定行数和SZ(2)指定列的数量。

例子

印第安纳州= sub2ind(SZ.I1、I2…,的)返回线性指标印第安纳州对应于中的多维下标N.阵列I1、I2…,对于大小的多维数组SZ.。这里SZ.是矢量与N.指定每个数组维度的大小的元素。

例子

全部收缩

对于一个3 × 3矩阵,从下标(按位置索引)到线性索引的映射可以如下所示。

指定3 × 3矩阵中的行和列下标。将下标转换为线性指标。

行= [1 2 3 1];col = [2 2 2 3];sz = [3];Ind = Sub2ind(SZ,Row,Col)
印第安纳州=1×44 5 6 7

可以如下所示从下标到2×2×2阵列的线性指标的映射。

在2×2×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)
印第安纳州=1×43 4 5 6

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

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

a = rand(3,4,2);lineSind = sub2ind(尺寸(a),2,1,2)
linearind = 14.

检查两个索引版本是否有关同一元素。

A(2,1,2)
ans = 0.4854.
A(14)
ans = 0.4854.

输入参数

全部收缩

数组的大小,指定为正整数向量。这个向量的每个元素表示相应维度的大小。例如,(2 3 4)定义2×3×4阵列。

数据类型:单身的|双倍的|INT8.|int16|INT32.|INT64.|uint8.|uint16|UINT32|UINT64

行下标,指定为标量,向量,矩阵或多维数组。的大小必须和尺寸一样col

数据类型:单身的|双倍的|INT8.|int16|INT32.|INT64.|uint8.|uint16|UINT32|UINT64

列下标,指定为标量、向量、矩阵或多维数组。的大小col必须和尺寸一样

数据类型:单身的|双倍的|INT8.|int16|INT32.|INT64.|uint8.|uint16|UINT32|UINT64

多维下标,指定为标量,向量,矩阵或多维数组。每个阵列I1,I2,......,在必须具有相同的大小。

数据类型:单身的|双倍的|INT8.|int16|INT32.|INT64.|uint8.|uint16|UINT32|UINT64

输出参数

全部收缩

线性索引,指定为标量、向量、矩阵或多维数组。的大小印第安纳州与输入的大小相同col, 或者I1,I2,......,在

数据类型:双倍的

算法

对于阵列一种, 如果IND = sub2ind(size(a),i1,...,在), 然后(印第安纳州(k)) = (I1 (k),……(k))对所有人K.

扩展能力

之前介绍过的R2006a