【问题标题】:Measuring the distance between matrices with different dimensions测量不同维度矩阵之间的距离
【发布时间】:2013-03-23 12:04:51
【问题描述】:

我有两个矩阵,一个矩阵的值范围为0-1,另一个矩阵的值只有01。我有兴趣仅计算与那些等于1 的像素的距离。在这种情况下,我想创建一个新矩阵,该矩阵仅包含来自第二个对象的值为 1 的像素,然后获取到这些像素的距离。但是,在这种情况下,尺寸会有所不同。

注意:这两个矩阵原本是相同维度的。但是,有许多不感兴趣的单元格(即具有价值的单元格0

我怎样才能对不同尺寸的物体进行这样的距离计算?

谢谢。

【问题讨论】:

  • 您的问题没有明确说明。请对其进行编辑并定义对象是什么,值范围为 0-1 的对象的含义等。
  • 我们还需要知道这些矩阵是否具有相同的维度。如果不是,那么一个矩阵中的索引如何映射到另一个?
  • 谢谢。我对我的问题进行了编辑。现在清楚了吗?

标签: matlab distance dimensions


【解决方案1】:

如果像素的位置对计算不重要,那么你可以像这样使用逻辑索引:

A = [0 1 0 0 1 1 0 0 1 1 1]; 
B = rand(size(A));
nonZeroInd = A == 1;
Anz = A(nonZeroInd);
Bnz = B(nonZeroInd);
dist = Bnz - Anz;

如果您需要矩阵中的结果与原始位置相同,那么您可以这样做

C = zeros(size(A));
C(nonZeroInd) = dist;

【讨论】:

    猜你喜欢
    • 2016-10-30
    • 2017-09-10
    • 2020-03-13
    • 2022-11-21
    • 2019-01-08
    • 1970-01-01
    • 1970-01-01
    • 2012-12-21
    • 2020-11-18
    相关资源
    最近更新 更多