Matlab には、相互にプロットする必要がある 2 つのデータ セットがあります。1 つは x 軸、もう 1 つは y 軸です。各セットのデータは異なる方法を使用して収集されたため、サンプリング レートが大幅に異なり、両方のセットで同じ数のデータ ポイントがなくなるまで、一方を他方に対してプロットできません。
downsample
関数 Matlabを使用して、Matlab でデータをダウンサンプリングするのは非常に簡単です。
A = [-3 -1.5 0 1.5 3 4.5 6 7.5 9...] (goes on until 21)
B = [-3.9 -3.8 -3.7 -3.6 -3.5 -3.5 -3.3 -3.2 -3.1 -3.0 -2.9 -2.8...] (goes on until 22)
A のサンプリング レートは 1.5 秒で、B のサンプリング レートは 0.1 秒です。「-3s」(これはデータ内の何かを意味するので、その時点で開始する必要があることを意味します)で、1.5s のサンプル サンプリング レートで開始するためにdownsample
asを正常に使用できました。 downsample(B,15,10)
.
ところで、15点ごとに1点を選ぶのではなく、15点の平均を取る方法はあるのだろうか?downsample
、私がそれを使用した方法は、15 番目のポイントごとに選択するだけです。ただし、代わりに 15 ポイントを平均してもらいたいと思います。これを行う方法はありますか?
単純な/小さいベクトルの for ループを作成して、それができるかどうかを確認しました。A = [1 2 3 4]
A(1) と A(2) を平均し、次に A(3) と A(4) を平均するように、A が 2 つのエントリしか持たないようにデータを圧縮したいからです。
A = [1 2 3 4]
for i = 1:3
P(i) = mean(A(i:i+1))
end
ただし、これは、A(2) と A(3) を平均化したくないため、希望どおりには機能しません。最初の 2 つのエントリを取得して平均化し、次に次の 2 つのエントリを取得してから平均化します。すぐ。
誰でも助けることができますか?
ありがとう