主要内容

Ind2sub.

将线性索引转换为下标

描述

[col] = IND2SUB(SZ.Ind.返回阵列col包含对应于线性指标的等效行和列下标Ind.对于大小的矩阵SZ.。这里SZ.是矢量与两个元素,在哪里SZ(1)指定行数和SZ(2)指定列的数量。

[I1,I2,......,在] = IND2SUB(SZ.Ind.回报N阵列I1,I2,......,在包含对应于线性指标的等效多维下标Ind.对于多维数组的大小SZ.。这里SZ.是矢量与N指定每个数组维度的大小的元素。

例子

全部收缩

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

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

IND = [3 4 5 6];sz = [3 3];[行,col] = Ind2Sub(SZ,Ind)
行=1×43 1 2 3
col =1×41 2 2 2

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

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

IND = [3 4 5 6];sz = [2 2 2];[I1,I2,I3] = IND2SUB(SZ,IND)
I1 =1×41 2 1 2
I2 =1×42 2 1 1
I3 =1×41 1 2 2

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

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

a = rand(3,4,2);[行,col,页面] = Ind2Sub(大小(a),14)
行= 2
col = 1
页面= 2

检查两个索引版本是否指的是阵列的相同元素。

A(14)
ans = 0.4854.
a(行,col,页面)
ans = 0.4854.

使用时Ind2sub.对于n维数组,您通常将为矩阵的每个维度提供n个输出参数。此示例显示了3维数组的输出参数返回较少的输出参数时显示不同的结果。

创建用于将线性指数1到8转换为三维阵列所需的输入参数,其具有尺寸为2-×2-2。

IND = 1:8;sz = [2 2 2];

使用时指定三个输出参数Ind2sub.返回2×2乘2阵列的行,列和页面下标。

[行,Col,页面] = Ind2Sub(SZ,IND)
行=1×8.1 2 1 2 1 2 1 2
col =1×8.1 1 2 2 1 1 2 2
页面=1×8.1 1 1 1 2 2 2 2

如果只指定两个输出参数,Ind2sub.忽略数组的第三维度,并返回具有大小2-of-4的二维阵列的下标。

[行,col] = Ind2Sub(SZ,Ind)
行=1×8.1 2 1 2 1 2 1 2
col =1×8.1 1 2 2 3 3 4 4

如果只指定一个输出参数,Ind2sub.忽略数组的第二个和第三维度,并返回具有大小1-ov-8的1维数组的下标。

Row = Ind2Sub(SZ,IND)
行=1×8.1 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

输出参数

全部收缩

行下标,返回标量,向量,矩阵或多维数组。的大小与输入的大小相同Ind.

数据类型:

列下标,作为标量,向量,矩阵或多维数组返回。的大小col与输入的大小相同Ind.

数据类型:

多维下标,作为标量,向量,矩阵或多维数组返回。每个阵列的大小I1,I2,......,在与输入的大小相同Ind.

数据类型:

提示

  • 获取满足矩阵特定条件的矩阵元素的线性指标一种,你可以使用使用一个输出参数函数。要获取下标索引,请使用函数有两个输出参数。例如,[行,col] = Ind2Sub(大小(a),查找(a> 5))给出相同的结果[行,col] =查找(a> 5)

算法

阵列一种,如果是[I1,...,IN] = IND2SUB(大小(a),IND), 然后a(i1(k),...,(k))= a(ind(k))对所有人K.

扩展能力

也可以看看

||

在R2006A之前介绍