主要内容

ind2sub

将线性索引转换为下标

描述

例子

上校) = ind2sub (深圳印第安纳州返回数组上校包含与线性索引对应的等价行下标和列下标的印第安纳州对于大小矩阵深圳.在这里深圳有两个元素的向量,在哪里深圳(1)指定行数和深圳(2)指定列的数量。

例子

I1、I2…,) = ind2sub (深圳印第安纳州返回n数组I1、I2…,包含等价于线性索引的多维下标印第安纳州对于具有大小的多维数组深圳.在这里深圳是一个向量n元素,该元素指定每个数组维的大小。

例子

全部折叠

转换线性指标[3 4 5 6]在3 × 3矩阵中行和列下标。从线性索引到下标(按位置索引)的映射如下所示。

创建输入向量并执行转换。

Ind = [3 4 5 6];Sz = [3 3];(行,坳)= ind2sub(深圳,印第安纳州)
行=1×43 1 2 3
坳=1×41 2 2 2

转换线性指标[3 4 5 6]在2 × 2 × 2数组中下标。对于一个2 × 2 × 2数组,从线性索引到下标(按位置索引)的映射可以如下所示。

创建输入向量并执行转换。

Ind = [3 4 5 6];Sz = [2 2 2];(I1、I2 I3) = ind2sub(深圳,印第安纳州)
I1 =1×41 2 1 2
I2 =1×42 2 1 1
I3 =1×41 1 2 2

将3d数组的线性索引转换为下标索引。

创建一个数组,并找到对应于数组第14个元素的下标索引。

一个=兰德(3、4、2);(行,坳,页面)= ind2sub(大小(A)、14)
行= 2
坳= 1
页面= 2

检查两个索引版本是否引用了数组中的相同元素。

(14)
ans = 0.4854
(行,上校,页面)
ans = 0.4854

当使用ind2sub对于N维数组,通常为矩阵的每个维度提供N个输出参数。这个例子显示了当您为一个三维数组返回更少的输出参数时的不同结果。

创建用于转换大小为2 × 2 × 2的三维数组的线性索引1到8所需的输入参数。

印第安纳州= 1:8;Sz = [2 2 2];

使用时指定三个输出参数ind2sub返回2 × 2 × 2数组的行、列和页下标。

(行,坳,页面)= ind2sub(深圳,印第安纳州)
行=1×81 2 1 2 1 2 1 2
坳=1×81 1 2 2 1 1 2 2
页面=1×81 1 1 1 2 2 2

如果只指定两个输出参数,ind2sub忽略数组的第三维,返回大小为2 × 4的2维数组的下标。

(行,坳)= ind2sub(深圳,印第安纳州)
行=1×81 2 1 2 1 2 1 2
坳=1×81 1 2 2 3 3 4 4

如果只指定一个输出参数,ind2sub忽略数组的第二维和第三维,返回大小为1 × 8的一维数组的下标。

印第安纳州行= ind2sub(深圳)
行=1×81 2 3 4 5 6 7 8

输入参数

全部折叠

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

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

线性索引,指定为标量、向量、矩阵或多维数组。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

输出参数

全部折叠

行下标,返回为标量、向量、矩阵或多维数组。的大小是否与输入的大小相同印第安纳州

数据类型:

列下标,返回为标量、向量、矩阵或多维数组。的大小上校是否与输入的大小相同印第安纳州

数据类型:

多维下标,返回为标量、向量、矩阵或多维数组。每个数组的大小I1、I2…,是否与输入的大小相同印第安纳州

数据类型:

提示

  • 求满足矩阵特定条件的矩阵元素的线性指标一个,你可以使用找到函数带有一个输出参数。要获取下标索引,请使用找到函数有两个输出参数。例如,(行,坳)= ind2sub(大小(A),找到(> 5))给出了相同的结果(行,坳)=找到(> 5)

算法

为一个数组一个,如果[I1,…]= ind2sub(大小(A),印第安纳州),然后(I1 (k),……(k)) = A(印第安纳州(k))对所有k

扩展功能

之前介绍过的R2006a