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

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
・ ・
・ ・
・ ・
切り上げ(四捨五入?)したくないのですが、どのようにすればよいでしょうか?
宜しくお願いします。

 Respuesta aceptada

Atsushi Ueno
Atsushi Ueno el 23 de Mzo. de 2023
Movida: Atsushi Ueno el 23 de Mzo. de 2023

1 voto

具体的なプログラムを挙げて頂けないでしょうか?
問題が再現しません。そもそも 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 comentarios

Kazu Ari
Kazu Ari el 23 de Mzo. de 2023
Movida: Atsushi Ueno el 23 de Mzo. de 2023
ご回答ありがとうございます。
データそのままは出せませんので、抜粋して添付します。
上記を
nnn=[label.Time,label.Data]
で処理すると以下になります。
Atsushi Ueno
Atsushi Ueno el 23 de Mzo. de 2023
Movida: Atsushi Ueno el 23 de Mzo. de 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 el 23 de Mzo. de 2023
確かに画面にuint8とありますね。
全く気にしてませんでした。
助かりました。
ありがとうございます。

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre 時系列 en Centro de ayuda y File Exchange.

Productos

Versión

R2021b

Etiquetas

Preguntada:

el 22 de Mzo. de 2023

Comentada:

el 23 de Mzo. de 2023

Community Treasure Hunt

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

Start Hunting!