2014-01-21 7 views
0

У меня есть изображение 250 х 250, я хочу иметь график рассеяния интенсивности каждого пикселя и его ближайшего соседства. Это мой код:«векторы должны быть одинаковой длины»

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

Почему возникает ошибка «X и Y векторы должны быть одинаковой длины»? Они одинаковой длины!

ответ

1

Потому что scatter(X, Y) используется только для векторов, а не для матрицы. В вашем примере как X, так и Y являются матрицами 2x2, а не векторами.

от его documentation:

разброс (X, Y) отображает круги в местах, указанных векторами X и Y. Этот тип графика также известен как пузырь участка.


Edit: если вы хотите построить матрицу, используйте plotmatrix() вместо:

plotmatrix(X,Y) 
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) с правой стороны.

Надеюсь, это поможет!

Смежные вопросы