【问题标题】:How to plot the coordinates of the nonzero elements in a matrix?如何绘制矩阵中非零元素的坐标?
【发布时间】:2014-11-12 18:05:56
【问题描述】:

我有一个用 0 和 1 填充的 418x284 矩阵,我想绘制一个图,其中所有点都是一个人的位置,x 和 y 坐标是(0 到 284,0 到 -418)。
我该怎么做呢? 感谢您的所有帮助!

【问题讨论】:

    标签: matlab matrix graph plot coordinate-systems


    【解决方案1】:

    您也可以使用spy(),但您需要调整刻度标签。

    假设你有以下矩阵:

    A = rand(418,284)>.7;
    

    然后:

    spy(A)
    

    调整标签:

    yticks = get(gca, 'YTick');
    yticks(yticks ~= 0) = -yticks(yticks ~= 0);
    set(gca, 'YTickLabel', yticks)
    

    【讨论】:

      【解决方案2】:

      mat 你的二进制矩阵。可以使用find获取非零元素的坐标:

      [I,J] = find(mat)
      plot(I, J);
      

      注意在 Matlab 中的图像和绘图之间轴的约定是不同的。上面的代码假设I 是行索引(从上到下),J 是列索引(从左到右)。

      一个工作示例:

      mat=eye(10);
      [I, J]=find(mat);
      
      subplot(1,2,1), imshow(mat)
      subplot(1,2,2), plot(I, J);
      

      结果:

                Binary image                              Non-zero pixels location
      

      【讨论】:

      • 是的,谢谢,这正是我想要的!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-04
      • 2015-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多