最小(x,y)对值的Matlab矩阵索引

Posted

技术标签:

【中文标题】最小(x,y)对值的Matlab矩阵索引【英文标题】:Matlab matrice index of min (x,y) pair values 【发布时间】:2012-10-16 19:31:15 【问题描述】:

我得到了一个 5 * 5 的矩阵。 我想找到 (i,j) 的最小值,它对应于距网格固定点的最小距离。

我用过: MATRICE(find(MATRICE(1,:))== min(MATRICE(1,:)),:) 和:

[minVal, minInd] = min(MATRICE(:,1));
MATRICE(minInd,1);
[~,MATRICE_2] = min(MATRICE(:,:));

disp(MATRICE_2) 让我得到 MATRICE 的正确 row(i),但根本不显示 column(j)

【问题讨论】:

我不清楚你想做什么。你能给出一些更清晰的例子来说明你的输入和预期输出吗? 我有一个网格,其轴点上的固定点由 meshgrid 'x,y = meshgrid(1:1:5)' 配置。随机用户生成并均匀分布到网格中。定点距离和随机用户距离用欧几里得公式测量。还测量了固定点和随机用户之间的距离,结果形成矩阵。所以这个 MATRICE 由 5 * 5 个坐标距离向量组成。现在为了将每个随机用户与其最近的固定点相关联,我想在每次模拟迭代中找到 MATRICE 的 min x,y 好的,感谢您的更新,听起来 angainor 的答案就是您所需要的。 【参考方案1】:

我不确定我是否理解正确,但如果你想找到数组中最小条目的(row,col) 索引,你可以使用这个

[i,j] = ind2sub(size(MATRICE), find(MATRICE==min(MATRICE(:))))

A 是您的矩阵。这可以通过将矩阵更改为 25 个元素的向量,查找最小值的位置,然后使用 ind2sub 将该位置转换为 (row,col) 对来实现。

您所写的内容会在矩阵的每一列中找到最少的条目。因此,MATRICE_2 中的每个i 条目都显示了i 列中最小值的行索引。换句话说,列和行索引是

cols = 1:numel(MATRICE_2);
rows = MATRICE_2;

【讨论】:

【参考方案2】:

好吧,我想通了:

[MinValue, MinIndex] = min(MATRICE(:));
MinSub =ind2sub(size(MATRICE), MinIndex);

MinValue 是 MATRICE 的最小值,MinIndex 是它的索引加上直接指向固定点。

【讨论】:

以上是关于最小(x,y)对值的Matlab矩阵索引的主要内容,如果未能解决你的问题,请参考以下文章

Matlab中已知函数值的最小值求对应的自变量值...

用加权最小二乘法拟合曲线matlab?

matlab 怎么找出二维矩阵中最大值的位置

矩阵参数怎么用最小二乘法拟合

从元组列表中返回具有最小 y 值的元组

常见向量范数和矩阵范数