Timetableのデータから積分値を算出する方法を教えてください
7 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
雅史 久保田
el 24 de Ag. de 2023
Editada: Takashi Ueno
el 29 de Ag. de 2023
Timetableで経時的なデータがあります。そのグラフのAUC(曲線化面積)を求めたいです。
データは0秒からサンプリング10Hzで計測されており、例えば開始10秒から20秒までの区間の積分値など区間ごとにAUCを算出したいです。
Matlab初心者で申し訳ありませんが、ご教示下さい。
0 comentarios
Respuesta aceptada
Takashi Ueno
el 29 de Ag. de 2023
Editada: Takashi Ueno
el 29 de Ag. de 2023
trapzを用いて台形則で数値積分することになるかと思います。
ただ、trapzはタイムテーブルではなく、通常の数値配列を受け入れます。
一例として、0秒から30秒まで10Hzで、f(x)=x.^2をサンプリングした場合を考えます。
もし、タイムテーブルとして持つのであれば、
t=seconds(0:0.1:30)'; % duration型で時刻の作成
y=seconds(t).^2; % duration型はsecondsなどの関数で、doubleに相互変換できます
tt=timetable(t,y);
のようなイメージです。
このタイムテーブルにおいて、10秒から20秒の区間を積分するのであれば、
t2=seconds(tt.t);
A=trapz(t2(t2>=10 & t2<=20),tt.y(t2>=10 & t2<=20))
のようになります。
なお、参考までに、関数が既知であれば、integral関数を用いて、
fun=@(x)x.^2;
A2=integral(fun,10,20)
のようにも数値積分でき、上記とほぼ一致しています。
0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre 数値積分と微分 en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!