retime関数使用時の timetable/retime (line 140)エラーの解決方法について

4 visualizaciones (últimos 30 días)
研
el 2 de Oct. de 2024
Editada: el 3 de Oct. de 2024
私は、現在大学の研究で記録間隔が一定でないデータを、既定の時間ごとに補完する作業を行っています。
その途中、私1人では解決できない問題が発生したため、担当教授の許可を得て、この場で質問させていただきます。
以下の図の通りに入力して1秒ごとのデータを出力しようとしました。
その結果次のような文面が表示されました。
Error using timetable/retime (line 140)
Input timetables must contain sorted (increasing or decreasing) row times when synchronizing using 'linear'.
この場合、1秒ごとのデータを出力するには、どうすればよいのでしょうか。
最後に、今回使用したコードを下に記載します。
Intensity = []';
Time = seconds([])';
TT1 = timetable(Time ,Intensity)
TT2 = retime(TT1,'regular','linear','SampleRate',1)
回答、よろしくお願いいたします。

Respuesta aceptada

Atsushi Ueno
Atsushi Ueno el 2 de Oct. de 2024
エラーメッセージの通り「記録間隔が単調増加ではない(並べ替えられていない)」事がエラーの原因です。
retime 関数の文書に「入力 timetable には、並べ替えられた一意の行時間がなければなりません」と記載されています。
実験1:「一意でない行時間」を入力すると下記のエラーが出ます
Input timetables must contain unique row times when synchronizing using 'linear'.
実験2:「並べ替えられていない行時間」を入力すると下記のエラーが出ます
Input timetables must contain sorted (increasing or decreasing) row times when synchronizing using 'linear'.
Time = seconds([0 0.2 0.4 0.7 0.9 1.1 1.3 1.6 1.8 2.0 2.2 2.5 2.7 2.9 3.1 3.4 3.6 ...
3.8 4.0 4.2 4.5 4.7 4.9 5.1 5.4 5.6 5.8 6.1 6.3 6.5 6.8 7.0 7.2 7.4 7.7]'); % 単調増加
TT1 = timetable(Time,rand(size(Time))); % Intensityは関係無いので適当な乱数
TT2 = retime(TT1,'regular','linear','SampleRate',1); % エラー無し
% 実験1:一意でない行時間を入力する
TT1.Time(11) = TT1.Time(10); % 10番目と11番目のデータを同じ(一意でない状態)にする
all(size(unique(TT1.Time)) == size(TT1.Time)) % 一意なら1、そうでなければ0
TT2 = retime(TT1,'regular','linear','SampleRate',1); % エラーが出る
%% 実験2:並べ替えられていない行時間を入力する
TT1.Time(10) = seconds(7.0); % 10番目の時間だけぴょこーんと飛び出す状態にする
issorted(TT1.Time) % 単調増加なら1、そうでなければ0
TT2 = retime(TT1,'regular','linear','SampleRate',1); % エラーが出る
  1 comentario
研
el 3 de Oct. de 2024
Editada: el 3 de Oct. de 2024
回答していただき、ありがとうございます。
Ueno様のご指摘の通り、原因は行時間が並び替えられていないことにありました。
無事に解決することができました。

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre ビッグ データの処理 en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!