全データの列数を100個(100%に時間正規化)にするにはどうすればいいでか?
Show older comments
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})
いい方法があればご教授いただきたいです。
Accepted Answer
More Answers (0)
Categories
Find more on 内挿 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!