Matlab中sub2ind函数使用
目录
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
相关文章
- matlab 点云可视化(1)——pcshow()函数可视化单个点云
- 【价格型需求响应】基于Logistic函数的负荷转移率模型需求响应研究(Matlab代码实现)
- 基于战争优化算法(WSO)的光伏模型参数估计研究(Matlab代码实现)
- SVM与基于马氏距离的径向基函数(MDRBF)核结合组合(Matlab代码实现)
- 基于混合VNS(变邻域搜索算法)的PSO(粒子群优化算法)的任务分配问题(Matlab代码实现)
- 基于重要抽样技术的非序贯蒙特卡洛法(Matlab代码实现)
- 基于分布鲁棒联合机会约束的能源和储备调度(Matlab代码实现)
- 负荷预测|一种改进支持向量机的电力负荷预测方法研究(Matlab代码实现)
- 基于MATLAB中雷达和视觉合成数据的目标级传感器融合(Matlab代码实现)
- 16QAM调制解调系统相位盲估计matlab仿真
- 基于OFDM的通信链路误码率matlab仿真,采用多径信道,卷积编码,16QAM
- m基于神经网络的气候预测matlab仿真,气候数据采用的BoM气候数据,神经网络为matlab编程实现不使用工具箱函数
- 基于matlab的SVM支持向量机分类仿真,核函数采用RBF函数
- 用Matlab进行部分分式展开
- 【MATLAB】matlab 文档使用 ( 文档查询 | 文档层次 | 自带搜索工具 | 帮助命令 | 学习导引 )
- 【MATLAB】基本绘图 ( 保存图像 | saveas 函数 )
- MATLAB中导入数据:importdata函数
- 【Python】实现MATLAB中计算两个矩形相交面积的rectint函数
- 【无人船】基于模型预测控制(MPC)对USV进行自主控制(Matlab代码实现)
- MATLAB未定义函数或变量 ‘wavread‘的很简单的解决办法
- Matlab使用笔记(五):输入多个向量函数参数 / 调用同文件下的其它函数 / 同一个源程序文件下实现多个函数模块的构建