'向量必须是相同长度'错误

时间:2014-01-21 15:50:39

标签: matlab scatter

我有一张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向量必须长度相同”的错误?它们的长度相同!

2 个答案:

答案 0 :(得分:1)

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

来自documentation

  

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


修改:如果您想绘制矩阵,请改用plotmatrix()

plotmatrix(X,Y)

答案 1 :(得分:0)

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)的邻居。

我希望这有帮助!