【问题标题】:' vectors must be the same length' error'向量必须是相同的长度'错误
【发布时间】:2014-01-22 00:46:48
【问题描述】:

我有一个 250 x 250 的图像,我想要一个每个像素及其最近邻域的强度散点图。这是我的代码:

I = imread(image);
i = [1,249];
j = [1,250];
X = I(i,j);
Y = I(i+1,j);
scatter(X,Y);

为什么会出现“X 和 Y 向量必须相同长度”错误?它们的长度相同!

【问题讨论】:

    标签: matlab scatter


    【解决方案1】:

    因为scatter(X, Y) 只用于向量,而不是矩阵。在您的示例中,X 和 Y 都是 2x2 矩阵,而不是向量。

    来自其documentation

    scatter(X,Y) 在向量 X 和 Y 指定的位置显示圆圈。这种类型的图形也称为气泡图。


    编辑:如果要绘制矩阵,请改用plotmatrix()

    plotmatrix(X,Y)
    

    【讨论】:

      【解决方案2】:

      Scatter(X,Y) 仅用于向量,因为 herohuyongtao 正确提及。您可以尝试执行以下操作:

      m = 250;
      X = I(m+1:end);
      Y = I(1:end-m);
      scatter(X,Y);
      

      在忽略第一列的同时将图像矩阵 I 转换为向量 X,在忽略最后一列的情况下转换为向量 Y。因此 X(n) 是 Y(n) 在右侧的邻居。

      我希望这会有所帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多