You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MATLAB中子矩阵最小值索引转原矩阵索引的实现方法

子矩阵索引转原矩阵索引的方法

首先明确子矩阵mA在原矩阵A中的行、列选取范围——比如你的代码里mA = A(3:5,5:7),对应的行范围是3到5,列范围是5到7。

已知子矩阵内的索引z = [rows(col), col],转换为原矩阵索引的逻辑很简单:

  • 原矩阵行索引 = 子矩阵起始行 + z(1) - 1
  • 原矩阵列索引 = 子矩阵起始列 + z(2) - 1

针对你的代码示例的具体实现

直接补充代码即可得到原矩阵的对应索引:

A = magic(11)
mA = A(3:5,5:7)
[~,rows] = min(mA)
[~,col] = min(min(mA))
z = [rows(col),col]

% 转换为原矩阵索引
row_A = 3 + z(1) - 1; % 子矩阵起始行是3
col_A = 5 + z(2) - 1; % 子矩阵起始列是5
idx_A = [row_A, col_A]

通用化写法(避免硬编码)

如果不想固定写死起始行和列,可以先把选取范围存为变量,适配任意子矩阵的情况:

A = magic(11);
row_range = 3:5; % 子矩阵的行范围
col_range = 5:7; % 子矩阵的列范围
mA = A(row_range, col_range);

[~,rows] = min(mA);
[~,col] = min(min(mA));
z = [rows(col), col];

% 通用转换逻辑
row_A = row_range(1) + z(1) - 1;
col_A = col_range(1) + z(2) - 1;
idx_A = [row_A, col_A];

内容的提问来源于stack exchange,提问作者cswah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 01:55:38