1

時系列にギャップのあるデータがあります。ギャップのインデックスが見つかり、長さとすべてが見つかります。問題は、データ (列: 時間と測定値) をいくつかの行列/ベクトルに切り刻むか、構造に切り刻むことです。私の計画は、これらの小さな時系列をさらに比較するためにフーリエ変換することです。

例で説明してみましょう: Tdat は時系列で、3825 ポイントがあります

    % find number of gaps
    nogap = diff(Tdat(find(diff(Tdat)>0.051))); %20Hz measurement
    numgaps = length(nogap) %number of gaps = bumgaps+1

ここのギャップの数は 8 です

    %indexing the gaps
    w = find(diff(Tdat)>0.51); %finding the gaps %0.051 since 1/20=0.05


    u = find(diff(Tdat)<0.51); %finding indices with data
    series = length(M)-length(u) %amount of data series without gaps

ギャップのないデータ系列の数は 9 です

    delta = diff(w) %amount of points between two gaps (constant

これらのギャップ間のポイント数は 425 です。

したがって、データのみを持ち、各長さ 425 の時間ギャップのない 9 つの異なる行列/ベクトルが必要です。

答えを見つけるのに十分な方法はありますか、それとも十分に検索していませんか?

4

2 に答える 2

1

あなたの例からわかることから、ギャップは削除したいデータポイントではなく、データを分割する場所のようです? 私は正しいですか?結果のデータ ベクトルは同じ長さなので、おそらくベクトルが必要ですreshape()か? のようにreshape(Tdat,425,9)

以下に小さな例を示します。

>> a = [1:12]'

a =

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12

>> b = reshape(a,4,3)

b =

     1     5     9
     2     6    10
     3     7    11
     4     8    12

mat2cell()データをセルとして使用する場合は、後で使用することもできます。

>> c = mat2cell(b,4,ones(1,3))

c = 

    [4x1 double]    [4x1 double]    [4x1 double]

>> c{2}

ans =

     5
     6
     7
     8
于 2013-04-02T14:25:55.920 に答える