2016-11-13 15 views
0

私は、線を通したい点のセットを持っています。ほとんどの場合、私はInfまたは-Infを得ることになります。特に、線が垂直または水平の場合に起こります。私はMatlabのセンタリングとスケーリングの記述を見てきましたが、私はこれを自分のデータにどのように適用するのか分かりません。以下はコード例ですが、問題のあるコードと正確に一致するわけではありません。私はこれを使用しました。なぜなら、メインコードはあまりにも長く続くからです。ployfitを使用してデータをセンタリングしてスケールする方法

x = [0, 1.81, 3.64, 5.45, 7.27]; 
y = [1, -0.82, -2.64, -4.45, -6.27]; 

fitline = polyfit([y(1), y(2), y(3), y(4)], [x(1), x(2), x(3), x(4)], 1); 

%plot the data 
k = linspace(0, 10, 5); 
fk = (fitline(1)*k) + fitline(2); 

figure, plot(k, fk, 'Color', 'r', 'linewidth', 1); 

ヘルプ/アドバイス/アドバイスをお待ちしております。ありがとう!

答えて

0

MATLABの関数セットpolyfitpolyvalは、あなたのセンタリング(平均の計算)とスケーリング(標準偏差の計算)を処理します。

x = [0, 1.81, 3.64, 5.45, 7.27]; 
y = [1, -0.82, -2.64, -4.45, -6.27]; 
[fitline,~,mu] = polyfit(y(1:4),x(1:4), 1); 

をそしてpolyvalに渡す:パラメータを取得するにはthird output of polyfitを使用し

k = linspace(0, 10, 5); 
fk = y = polyval(fitline,k,[],mu); 
+0

おかげ@TroyHaskinを。それは完璧に動作しますが、私は画像処理ツールボックスの画像に作成されたプロットに対して同じアプローチを使用すると、なぜ動作しないのだろうと思います。これがどうして起こるのでしょうか? – oma11

関連する問題