# how can I find a specific data in time table in matlab?

15 ビュー (過去 30 日間)
Hamed Hedayatnia 2019 年 10 月 17 日

I am trying to extract the freez-thaw cycles in a timetable.freezing of stone only occur when the temperature drops below3 °C in a day and thawing when temperature rises above 1 °C in next day. My quastion is that how can I define a function for it and then retime the time table based on it.
I need to find the days with mean temperature below3 °C, followed by a day with mean temperature above 1 °C.(meteorological data file in attachment.)

サインインしてコメントする。

### 採用された回答

Andrei Bobrov 2019 年 10 月 17 日

i = diff(3*(data_mean_daily.tabrizmat7 < -3) + (data_mean_daily.tabrizmat7 > 1)) == -2;
T_out = data_mean_daily([i;false]|[false;i],:);
as at Sebastian:
i = (data_mean_daily.tabrizmat7(1:end-1) < -3) & (data_mean_daily.tabrizmat7(2:end) > 1);
T_out = data_mean_daily(find(i(:)')+[0;1],:);
##### 8 件のコメント表示非表示 7 件の古いコメント
Andrei Bobrov 2019 年 10 月 18 日
k = 3*(data_mean_daily.tabrizmat7 < -3) + (data_mean_daily.tabrizmat7 > 1);
k is the vector of days, if the element has a value of 3, then the temperature of this day is less than -3, if the value is 1, the temperature is more than +1. We are looking for a combination in our case [3; 1] or diff([3;1]).

サインインしてコメントする。

### その他の回答 (1 件)

Sebastian Bomberg 2019 年 10 月 17 日
You can offset temperature by one day and compare against >= 4.
idx = data_mean_daily.tabrizmat7(1:end-1) >= 2 & ... % temp at current day greater 2 AND
data_mean_daily.tabrizmat7(2:end) >= 4; % temp at next day greate 4
data_mean_daily(idx,:)
idx has one row less than data_mean_daily but the missing last row will be treated as false anyway.
##### 1 件のコメント表示非表示 なし
Andrei Bobrov 2019 年 10 月 18 日
+1

サインインしてコメントする。

### カテゴリ

Find more on Time Series Events in Help Center and File Exchange

R2018b

### Community Treasure Hunt

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

Start Hunting!

Translated by