MATLAB 帮助中心
将下标转换为线性索引
ind = sub2ind(sz,row,col)
ind = sub2ind(sz,I1,I2,...,In)
ind = sub2ind(sz,row,col) 针对大小为 sz 的矩阵返回由 row 和 col 指定的行列下标的对应线性索引 ind。此处,sz 是包含两个元素的向量,其中 sz(1) 指定行数,sz(2) 指定列数。
ind
sz
row
col
sz(1)
sz(2)
示例
ind = sub2ind(sz,I1,I2,...,In) 针对大小为 sz 的多维数组返回由 n 个数组 I1,I2,...,In 指定的多维下标的对应线性索引 ind。此处,sz 是包含 n 个元素的向量,用于指定每个数组维度的大小。
I1,I2,...,In
n
全部折叠
3×3 矩阵的从下标(按位置进行索引)到线性索引的映射如下所示。
在 3×3 矩阵中指定行下标和列下标。将下标转换为线性索引。
row = [1 2 3 1]; col = [2 2 2 3]; sz = [3 3]; ind = sub2ind(sz,row,col)
ind = 1×4 4 5 6 7
2×2×2 数组的从下标到线性索引的映射如下所示。
在 2×2×2 数组中指定行下标、列下标和页下标。将下标转换为线性索引。
I1 = [1 2 1 2]; I2 = [2 2 1 1]; I3 = [1 1 2 2]; sz = [2 2 2]; ind = sub2ind(sz,I1,I2,I3)
ind = 1×4 3 4 5 6
将三维数组的下标索引转换为单个线性索引。
创建数组,并确定对应于 (2,1,2) 位置的元素的线性索引。
A = rand(3,4,2); linearInd = sub2ind(size(A),2,1,2)
linearInd = 14
检查这两个索引版本是否引用同一元素。
A(2,1,2)
ans = 0.4854
A(14)
数组的大小,指定为正整数向量。此向量的每个元素指示对应维度的大小。例如,[2 3 4] 定义 2×3×4 数组。
[2 3 4]
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
single
double
int8
int16
int32
int64
uint8
uint16
uint32
uint64
行下标,指定为标量、向量、矩阵或多维数组。row 和 col 可以是相同大小的数组,也可以其中一个是标量。
列下标,指定为标量、向量、矩阵或多维数组。row 和 col 可以是相同大小的数组,也可以其中一个是标量。
多维下标,指定为标量、向量、矩阵或多维数组。I1,I2,…,In 可以是相同大小的数组,也可以其中任一个为标量。
I1,I2,…,In
线性索引,以标量、向量、矩阵或多维数组形式返回。
如果下标输入都具有相同的大小,则 ind 也具有该大小。
如果下标输入混合使用标量和数组,则 ind 具有非标量下标输入的大小。
数据类型: double
对于数组 A,如果 ind = sub2ind(size(A),I1,…,In),则对于所有 k 来说,A(ind(k)) = A(I1(k),…,In(k))。
A
ind = sub2ind(size(A),I1,…,In)
k
A(ind(k)) = A(I1(k),…,In(k))
全部展开
sub2ind 函数完全支持 tall 数组。有关详细信息,请参阅 tall 数组。
sub2ind
用法说明和限制:
输入向量 sz、row 和 col 只能包含有限整数值。
输入向量 sz 在代码生成时必须为固定大小。
数组大小限制 - 对于代码生成,数组元素的最大数量受代码生成器和目标硬件的限制。请参阅代码生成的数组大小限制 (MATLAB Coder)。元素数超出最大值的数组不支持大小向量 sz。
第一个参量必须为有效的大小向量。代码生成不支持超过 intmax 个元素的数组的大小向量。
intmax
backgroundPool
ThreadPool
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
sub2ind 函数完全支持 GPU 数组。要在 GPU 上运行该函数,请将输入数据指定为 gpuArray (Parallel Computing Toolbox)。有关详细信息,请参阅在 GPU 上运行 MATLAB 函数 (Parallel Computing Toolbox)。
gpuArray
此函数完全支持分布式数组。有关详细信息,请参阅使用分布式数组运行 MATLAB 函数 (Parallel Computing Toolbox)。
现在,sub2ind 利用标量扩展,并接受混合使用标量和向量作为下标输入。例如,sub2ind(sz,[1 2 3],2) 现在等同于 sub2ind(sz,[1 2 3],[2 2 2])。以前,下标输入要求大小相同。
sub2ind(sz,[1 2 3],2)
sub2ind(sz,[1 2 3],[2 2 2])
ind2sub | find | size
ind2sub
find
size
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处