【发布时间】: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 向量必须相同长度”错误?它们的长度相同!
【问题讨论】:
我有一个 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 向量必须相同长度”错误?它们的长度相同!
【问题讨论】:
因为scatter(X, Y) 只用于向量,而不是矩阵。在您的示例中,X 和 Y 都是 2x2 矩阵,而不是向量。
来自其documentation:
scatter(X,Y) 在向量 X 和 Y 指定的位置显示圆圈。这种类型的图形也称为气泡图。
编辑:如果要绘制矩阵,请改用plotmatrix():
plotmatrix(X,Y)
【讨论】:
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) 在右侧的邻居。
我希望这会有所帮助!
【讨论】: