主要内容

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

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

创建一个数组,并找到对应于该数组第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 2
坳=1×81 1 2 2 1 1 2 2
页面=1×81 1 1 1 2 2 2 2 2

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

(行,坳)= ind2sub(深圳,印第安纳州)
行=1×81 2 1 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

Baidu
map