首页 > 解决方案 > 最小值矩阵 A 在第 2 到第 3 行和第 2 列的索引行和索引列

问题描述

我的 MATLAB 代码如下:

clear all;
clc;
A=[1 0 3;4 3 0;5 10 3]
[rows,columns]=find(A(:,2)==min(A(2:3,2)))

我想在第 2 到第 3 行和第 2 列中找到最小值矩阵 A 的索引行和索引列。手动,我们可以找到最小值为 3,索引行 = 2,索引列 = 2(见下图)

在此处输入图像描述

但是如果我使用上面的代码,我的问题是不一样的。任何人都可以帮助我吗?

标签: matlabminimumindices

解决方案


由于您正在输入列索引,因此无需再次查找。更好的方法是这样做:

col_ind = 2;
[minimum, row_ind]  = min(A(2:3,col_ind)); 
row_ind = row_ind+1;      %1 is added since first row is skipped in above line

在您的代码中,

  • A(2:3, 2)只有 1 列。columns将永远如此1
  • 如果A(1,2)也与最小值相同,您的代码将返回第一个值的行索引。
  • 在计算中跳过第一行和第一列的事实并未包含在输出中。

修复以上问题:

[rows,columns]=find(A(2:3,2)==min(A(2:3,2)));
rows=rows+1;     columns=columns+1;

推荐阅读