Matlab中sub2ind函数使用

您所在的位置:网站首页 查询坐标输入数组的大小必须相同 Matlab中sub2ind函数使用

Matlab中sub2ind函数使用

2024-06-05 23:06| 来源: 网络整理| 查看: 265

目录

语法

说明

示例

将下标转换为矩阵的线性索引

将下标转换为三维数组的线性索引

访问三维数组的元素

        sub2ind函数的功能是将下标转换为线性索引。

语法 ind = sub2ind(sz,row,col) ind = sub2ind(sz,I1,I2,...,In)

sz - 数组的大小

      数组的大小,指定为正整数向量。此向量的每个元素指示对应维度的大小。例如,[2 3 4] 定义 2×3×4 数组。

row - 行下标

      行下标,指定为标量、向量、矩阵或多维数组。row 的大小必须与 col 的大小相同。

col - 列下标

      列下标,指定为标量、向量、矩阵或多维数组。col 的大小必须与 row 的大小相同。

I1,I2,...,In - 多维下标

      多维下标,指定为标量、向量、矩阵或多维数组。每个数组 I1,I2,…,In 必须具有相同的大小。

ind - 线性索引

        线性索引,指定为标量、向量、矩阵或多维数组。ind 的大小与输入 row、col 或 I1,I2,…,In 的大小相同。

算法

        对于数组 A,如果 ind = sub2ind(size(A),I1,…,In),则对于所有k来说,

A(ind(k)) = A(I1(k),…,In(k))。

说明

ind = sub2ind(sz,row,col) 针对大小为 sz 的矩阵返回由 row 和 col 指定的行列下标的对应线性索引 ind。此处,sz 是包含两个元素的向量,其中 sz(1) 指定行数,sz(2) 指定列数。

ind = sub2ind(sz,I1,I2,...,In) 针对大小为 sz 的多维数组返回由 n 个数组 I1,I2,...,In 指定的多维下标的对应线性索引 ind。此处,sz 是包含 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) ans = 0.4854



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3