Plotting matrices that don't have the same size
22 ビュー (過去 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 件のコメント
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?
回答 (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 件のコメント
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 Center および File Exchange で Logical についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!