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

 Akzeptierte Antwort

Atsushi Ueno
Atsushi Ueno am 23 Mär. 2023
Verschoben: Atsushi Ueno am 23 Mär. 2023

1 Stimme

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

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Produkte

Version

R2021b

Tags

Gefragt:

am 22 Mär. 2023

Kommentiert:

am 23 Mär. 2023

Community Treasure Hunt

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

Start Hunting!