2016-07-29 14 views
2

私は比較する必要がある長さが異なる2つの配列(異なるサンプリングレートのため)を持っています。私は長さの小さいものと一致するように大きな配列をダウンサンプリングしたいと思いますが、因子は整数ではなく小数です。例えばMATLAB:2つの配列を異なる長さで比較する

a = 
    1  1.375  1.75  2.125  2.5  2.875  3.25 

b = 
    1  2  3 

は、長さに合わせて、これらの配列を操作する方法はありますか?

答えて

2

これは、interp1を賢明に使用して簡単に行うことができます。そのトリックは、補間に使用されるキーポイントが、と呼ぶaにある1から最大値までの配列であり、補間されたキーポイントは、最初のポイントが1、最後のポイントポイントはNで、bと同数のポイントを均等に割ります。

は、簡単に言えば:

anew = interp1(1:numel(a), a, linspace(1, N, numel(b))); 

linspaceたちはb内の要素の合計数として決定したいできるだけ多くのポイントのためにN = numel(a)から1から直線的に増加する配列を生成します。これは正確に、bの長さに一致するaのダウンサンプリングされたバージョンを与える右のキーポイントを指定しますが、補間が必要です。デフォルトの補間方法は線形です。あなたが提供aからのサンプル入力を使用して

、我々が得る:

>> anew 

anew = 

    1.0000 2.1250 3.2500 
+0

パーフェクト。 **ありがとうございます。 – Bensa

+0

全く問題ありません。がんばろう! – rayryeng

関連する問題