最小(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矩阵索引的主要内容,如果未能解决你的问题,请参考以下文章