プロットされた一連の値(x、y)があります。セグメント {(Xi, Yi), (Xi+1, Yi+1)} を最速の成長/減少率で識別する方法を探しています。
画像の例では、これらのセグメントはタグ付けされており、最も急速に増加しているセグメントには次の X 座標 (516, 550) があり、最も急速に減少しているセグメントには (620, 635) があります。これを行うアルゴリズムをどのように定義できますか?
2 に答える
2
各線分の傾きを計算します。勾配の最大値と最小値を追跡します。これらは、それぞれ最大の増加率と最大の減少率を持つセグメントに対応します。
于 2011-11-29T18:34:04.353 に答える
0
次のコード例は、問題を解決するための方法を提供する必要があります。
%Create x and y values
x = 1:0.5:20;
y = real((x-15).^2.2.*sin(x)-0.5*x);
%Plot
f1 = figure(1);clf
plot(x,y)
%Calculate derivative
dx = abs(conv(y,[1 -1],'same'));
%Find maximum change
[maxSlope idx] = find(dx==max(dx));
%Display derivative and maximum change points
hold on
plot(x+0.5,dx,'g')
plot(x(idx+1),y(idx+1),'*r')
grid on
legend('Data series','abs(Derivative)','Point of maximum change');
おもちゃのデータ セットを作成し、y が最も変化するポイントを見つけました。ここでは等間隔の点 (x は直線的に増加) が想定されていることに注意してください。データは均等に配置されていますか?
結果のプロット:
于 2011-11-29T22:18:06.253 に答える