全データの列数を100個(100%に時間正規化)にするにはどうすればいいでか?
Mostrar comentarios más antiguos
30秒間の歩行を想定しています。身体の5箇所に加速度計を装着し、加速度データ、角度データなど9種類のデータが格納されています。
現時点で30秒間の歩行を歩行周期に区切り、28周期に分割するところまで作業が進んでいます。
ここで問題になるがそれぞれの周期データ数がばらついているため、100%に時間正規化(データ数を100個)したいと考えています。

例:A.Thorax(上の図のThoraxを展開)

このようにそれぞれデータ数がばらついております。
このうちの1×1セルの1列に対してはcellfunを使用する方法でデータ数を揃えることはできるのですが、データ数が非常に多いため一括して操作(Thorax, Lumber, Pelvic, LFemoral, LTibia)できたらと思っています。以下のコードはA.Thoraxの6列目だけを抽出してリサンプリングし、平均値まで出したものになります。
data = cell(1, length(A.Thorax)-1)
for i = 1:length(A.Thorax)-1
data{i} = A.Thorax{i}(:,6);
end
% データ数が100のセルを作成
query = cellfun(@(x) 1:length(x)/101:length(x), data, 'uni', false); %データ数を100個に指定
% dataのデータ数を100にリサンプリング
normacc = cellfun(@interp1, data, query, 'uni', false);
avg = arrayfun(@mean, normacc{i})
いい方法があればご教授いただきたいです。
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre 内挿 en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!