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

 채택된 답변

Atsushi Ueno
Atsushi Ueno 2023년 3월 23일
이동: Atsushi Ueno 2023년 3월 23일

1 개 추천

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

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

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 時系列에 대해 자세히 알아보기

제품

릴리스

R2021b

태그

질문:

2023년 3월 22일

댓글:

2023년 3월 23일

Community Treasure Hunt

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

Start Hunting!