2017-06-29 11 views
0

私は百ノード以上のベクトルを持っています(120としましょう)。また、それらにも対応する時間があります。Matlabで百ノード以上のベクトルを百分率で補間する方法は?

data = [120x1]; 
Time = [0:0.01:(120/100)-0.01]'; 

ここでは、データをパーセンテージに変換したいと考えています。

percent = (0:0.01:(101/100)-0.01)'; 

このコマンドを使用すると、データを補間するのではなく、第101ポイントでデータをカットするだけです。

IntpData = interp1(Time, data, percent, 'spline'); 

どのようにデータ(Nノード)をパーセンテージ(101ノード)に補間しますか?

+0

実際の質問ではなく、「あなたは私を手伝ってください。 [なぜ誰かが私を助けることができるのですか?]実際の質問ではありませんか?](http://meta.stackoverflow.com/q/284236) – Adriaan

+0

@Adriaan私はそれを編集しました!さて、あなたは私の質問に答えることができますか? –

答えて

0

パーセントに変換したいが、時間の範囲は0から1.2です。 これは、データを0から1へ再スケーリングすることを意味します。時間軸を変更するだけで、データと同じ点があることを確認してください。この場合

Time = linspace(0,1,120); 

はこれを行うだろう。

+0

時間範囲は0〜1.2で、ステップは0.01秒です!私はそれらの120ノードをパーセンテージ(101ノード)に補間する必要があります。私は再スケーリングしたくないので、パーセンテージでデータを表示する必要があります。つまり、データ全体を再スケーリングする必要があります(ただし、パターンは保持する必要があります)。 –

0

私はそれを理解しました!

パーセントを定義するには、101の代わりに最後のポイントを使用する必要があります。 この場合、最後のポイントは1.2です。したがってパーセントは次のようになります。

Percent = [0:(1.2/100):1.2] 

次に、100ポイントの補間データを返します。

IntpData = interp1(Time, data, percent, 'spline'); 
関連する問題