ind2sub
将线性下标转换为下标
描述
例子
矩阵的线性下标转换
转换线性指标[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阵列的元素
将3-D数组的线性索引转换为下标索引。
创建一个数组,并找到对应于该数组第14个元素的下标索引。
一个=兰德(3、4、2);(行,坳,页面)= ind2sub(大小(A)、14)
行= 2
坳= 1
页面= 2
检查两个索引版本是否引用数组中的相同元素。
(14)
ans = 0.4854
(行,上校,页面)
ans = 0.4854
使用ind2sub
输出参数更少
当使用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…,
——多维下标
标量|向量|矩阵|多维数组
多维下标,作为标量、向量、矩阵或多维数组返回。每个数组的大小I1、I2…,
和输入的大小一样吗印第安纳州
.
数据类型:双
提示
得到满足矩阵特定条件的矩阵元素的线性指标
一个
,你可以使用找到
函数只有一个输出参数。要获取下标索引,请使用找到
带有两个输出参数的函数。例如,(行,坳)= ind2sub(大小(A),找到(> 5))
得到相同的结果(行,坳)=找到(> 5)
.
算法
为一个数组一个
,如果[I1,…]= ind2sub(大小(A),印第安纳州)
,然后(I1 (k),……(k)) = A(印第安纳州(k))
对所有k
.
扩展功能
高大的数组
使用行数超过内存容量的数组进行计算。
这个函数完全支持高数组。有关更多信息,请参见高大的数组.
C / c++代码生成
使用MATLAB®Coder™生成C和c++代码。
使用注意事项和限制:
第一个参数必须是有效的大小向量。大于
intmax
不支持元素。生成的代码处理
南
输入为超出范围并抛出运行时错误。看到工具箱函数代码生成的变量大小限制(MATLAB编码器).
线程环境
在后台使用MATLAB®运行代码backgroundPool
或使用并行计算工具箱™加速代码ThreadPool
.
这个函数完全支持基于线程的环境。有关更多信息,请参见在线程环境中运行MATLAB函数.
GPU数组
通过使用并行计算工具箱™在图形处理单元(GPU)上运行来加速代码。
该功能完全支持GPU阵列。有关更多信息,请参见在图形处理器上运行MATLAB函数(并行计算工具箱).
分布式阵列
使用并行计算工具箱™跨集群的组合内存分区大型数组。
这个函数完全支持分布式数组。有关更多信息,请参见运行MATLAB函数与分布式数组(并行计算工具箱).
版本历史
之前介绍过的R2006a
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。