それぞれが行ベクトルとして値のシーケンスを含むセル配列を持っています。シーケンスには、で表されるいくつかの欠落値が含まれていますNaN
。
ある種の内挿法を使用してすべてのNaNを置き換えたいのですが、MATLABでこれを行うにはどうすればよいですか?また、これらの欠落している値を処理する方法に関する他の提案も受け付けています。
問題を説明するために、このサンプルデータを検討してください。
seq = {randn(1,10); randn(1,7); randn(1,8)};
for i=1:numel(seq)
%# simulate some missing values
ind = rand( size(seq{i}) ) < 0.2;
seq{i}(ind) = nan;
end
結果のシーケンス:
seq{1}
ans =
-0.50782 -0.32058 NaN -3.0292 -0.45701 1.2424 NaN 0.93373 NaN -0.029006
seq{2}
ans =
0.18245 -1.5651 -0.084539 1.6039 0.098348 0.041374 -0.73417
seq{3}
ans =
NaN NaN 0.42639 -0.37281 -0.23645 2.0237 -2.2584 2.2294
編集:
回答に基づいて、混乱があったと思います。明らかに私はランダムデータを処理していません。上記のコードは、データがどのように構造化されているかの単なる例です。
実際のデータは、処理された信号の形式です。問題は、分析中に、シーケンスに欠落値が含まれているとソリューションが失敗するため、フィルタリング/補間が必要になることです(各シーケンスの平均を使用して空白を埋めることをすでに検討しましたが、より強力なものを望んでいます)