この状況では、おそらく interp1 の使用を検討する必要があります。これにより、ポイント間の補間が実行されるため、x 軸上の任意の位置でサンプリングできます。
http://www.mathworks.com/help/matlab/ref/interp1.html
次の例には、ランダムなサンプル データsample1
と がsample2
ありsample3
ます。これらの変数の長さは、それぞれ 2600、2500、および 2550 です。
sample1 = exp(2*linspace(0,1,2600)+rand(1, 2600));
sample2 = exp(linspace(0,1,2500)+rand(1, 2500));
sample3 = exp(3*linspace(0,1,2550)+rand(1, 2550));
私は希望の長さを持っています (私はあなたの最短のサンプルサイズに対応する長さを使用しています)
desiredlength = 2500;
次に、次のコードを使用してデータを補間できます (デフォルトは線形補間であることに注意してください)。
adjusted = zeros(3, desiredlength);
adjusted(1, :) = interp1(linspace(0,1,length(sample1)), sample1, linspace(0,1,desiredlength));
adjusted(2, :) = interp1(linspace(0,1,length(sample2)), sample2, linspace(0,1,desiredlength));
adjusted(3, :) = interp1(linspace(0,1,length(sample3)), sample3, linspace(0,1,desiredlength));
plot(adjusted')

linspace(a, b, n)
n
と の間の点のベクトルを与える関数でありa
、b
からsample1
に変換しlinspace(0, 1, 2600)
ていますlinspace(0, 1, 2500)
これが役立つことを願っています。