How do I plot a curve through these points?

I have arrays of x and y values (both of equal length) and plotted the following graph using plot(x,y):
I want to plot smooth curves through these points so that I end up with a bell-shaped curve on top, and a second curve through the points that lie along the bottom.
However when I try to use Basic Fitting to plot a curve, I get the error 'Repeated X values are not permitted when fitting with a cubic interpolating spline. Remove repeated values'.

回答 (1 件)

Star Strider
Star Strider 2016 年 1 月 10 日

0 投票

You did not include your data (and I do not have the Curve Fitting Toolbox), but the unique function will likely help. You will likely need the first two outputs, something like this:
A = randi(9, 15, 2);
[Au, ia] = unique(A(:,1));
Aplot = A(ia,:);
where ‘A’ has the x-data in column 1, the y-data in column 2, and ‘Aplot’ is the sorted array with unique x-values and the first corresponding y-values the function found.

2 件のコメント

Guestsaint
Guestsaint 2016 年 1 月 10 日
編集済み: Guestsaint 2016 年 1 月 10 日
I used the unique function by adding this to my code:
[x_unique,ind] = unique(x);
y_unique = y(ind);
and then using plot(x_unique,y_unique).
I get the same points plotted as before but now when I try to plot curves through them using Basic Fitting I now get the error 'Matrix is singular to working precision'.
Star Strider
Star Strider 2016 年 1 月 10 日
I’m not sure what you’re doing, but one possibility is that you’re attempting to fit a much higher-degree polynomial than your data can approximate. Reduce the order of the polynomial.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeInterpolation についてさらに検索

タグ

質問済み:

2016 年 1 月 10 日

編集済み:

2016 年 1 月 11 日

Community Treasure Hunt

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

Start Hunting!

Translated by