# Plotting matrices that don't have the same size

조회 수: 25 (최근 30일)
Samy Ben Thabet 2018년 11월 29일
편집: Akira Agata 2018년 11월 30일
I am trying to plot two matrices it doesn't work.
matrix_1 is a 181x1 matrix with different values, I am trying to plot these values and also get a line fitted on the same plot, I tried polyfit as well but it doesn't work.
Message diplayed:
"Error using plot
Vectors must be the same length."
x=1941:2010
y=matrix_1
plot(x,y)
##### 댓글 수: 3이전 댓글 1개 표시이전 댓글 1개 숨기기
Bob Thompson 2018년 11월 29일
편집: Bob Thompson 2018년 11월 29일
Yes, matlab is expecting coordinate pairs.
How is your data related? X appears to be years, but should there be one set of results for each year, or is there some other correlation?
Samy Ben Thabet 2018년 11월 29일
Oh right my bad. I guess I made a mistake somewhere in my code I will try to fix that.
Thank you!

댓글을 달려면 로그인하십시오.

### 답변 (1개)

Ken Atwell 2018년 11월 30일
When calling plot, the length of the x,y pairs must be equal. Here is an example of a plot of x^2 with noise added, then then a polyfit to that data:
x=-3:.1:3;
y=x.^2+rand(size(x));
f=polyfit(x, y, 2); % Returns coefficients, not y values directly
fy = f(1).*x.^2 + f(2).*x + f(3);
plot(x,y,x,fy)
##### 댓글 수: 1이전 댓글 -1개 표시이전 댓글 -1개 숨기기
Akira Agata 2018년 11월 30일
편집: Akira Agata 2018년 11월 30일
If these two matrices are not the same size but matrix_1 is a sampled data from x = 1941 to 2010 with some fixed sampling frequency, adjusting length of x with linspace function would be possible solution. Here is an example.
x = 1941:2010;
y = matrix_1;
xInterp = linspace(min(x),max(x),numel(y));
figure
plot(xInterp,y)

댓글을 달려면 로그인하십시오.

### 카테고리

Help CenterFile Exchange에서 Line Plots에 대해 자세히 알아보기

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by