timeseries​データから、X、Yの​値をcsv化する方法

37 views (last 30 days)
Kazu Ari
Kazu Ari on 22 Mar 2023
Commented: Kazu Ari on 23 Mar 2023
timeseriesデータ「ts」から配列を作ります。
tsの中身
時間 データ
199.8000 1
199.8100 1
199.8200 1
・ ・
・ ・
・ ・
以下のコマンドでtimeseriesデータから配列を作ります。
Hairetsu = [ts.Values.Time , ts.Values.Data]
timeseriesでは小数点以下4桁だったのが、配列では整数に切り上げ(四捨五入?)られてしまいます。
200 1
200 1
200 1
・ ・
・ ・
・ ・
切り上げ(四捨五入?)したくないのですが、どのようにすればよいでしょうか?
宜しくお願いします。

Accepted Answer

Atsushi Ueno
Atsushi Ueno on 23 Mar 2023
Moved: Atsushi Ueno on 23 Mar 2023
具体的なプログラムを挙げて頂けないでしょうか?
問題が再現しません。そもそも timeseries データに”Values”フィールドが存在しません。
ts = timeseries(ones(5,1),[199.80;199.81;199.82;199.83;199.84])
timeseries Common Properties: Name: 'unnamed' Time: [5x1 double] TimeInfo: tsdata.timemetadata Data: [5x1 double] DataInfo: tsdata.datametadata
%Hairetsu = [ts.Values.Time , ts.Values.Data]
Hairetsu = [ts.Time , ts.Data]
Hairetsu = 5×2
199.8000 1.0000 199.8100 1.0000 199.8200 1.0000 199.8300 1.0000 199.8400 1.0000
  3 Comments
Atsushi Ueno
Atsushi Ueno on 23 Mar 2023
Moved: Atsushi Ueno on 23 Mar 2023
ありがとうございます。問題が再現しました。
当該データの型がuint8 timeseries型である事が原因です。即ち時刻情報 label.Time はdouble型ですが、label.Dataがuint8型です。これらをそれぞれ取り出し一つの行列に纏めるとuint8型に変換されてしまいます。
nnn=[label.Time,label.Data]
label.Dataを取り出した後double型にキャストすれば問題が解消します。
nnn = [label.Time,double(label.Data)]
Kazu Ari
Kazu Ari on 23 Mar 2023
確かに画面にuint8とありますね。
全く気にしてませんでした。
助かりました。
ありがとうございます。

Sign in to comment.

More Answers (0)

Categories

Find more on 時系列コレクション in Help Center and File Exchange

Tags

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!