主要内容

Ind2sub.

将线性索引转换为下标

描述

例子

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

例子

[I1、I2…,] = IND2SUB(SZ.印第安纳州回报N阵列I1、I2…,包含等价于线性索引的多维下标印第安纳州对于多维数组的大小SZ.。这里SZ.是矢量与N元素,该元素指定每个数组维的大小。

例子

全部收缩

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

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

Ind = [3 4 5 6];sz = [3 3];[行,col] = Ind2Sub(SZ,Ind)
行=1×4.3 1 2 3
col =1×4.1 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×4.1 2 1 2
I2 =1×4.2 2 1 1
I3 =1×4.1 1 2 2

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

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

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

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

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

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

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

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

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

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

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

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

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

Row = Ind2Sub(SZ,IND)
行=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,......,在与输入的大小相同印第安纳州

数据类型:双倍的

提示

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

算法

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

扩展能力

也可以看看

||

之前介绍过的R2006a