Specific change points in large dataset

조회 수: 6 (최근 30일)
Timon Rayis
Timon Rayis 2019년 10월 17일
답변: prasanth s 2019년 10월 17일
Hello everyone. I am new to matlab and trying to solve an assignment.
I have a large dataset with 3523873x1 size. (attached data)
data_mat.jpg
I am trying to find the points (green circles).
I have tried using
z = ischange(df_10s_ufreq,'linear', 'MaxNumChanges',5);
z_index = find(z);
I could not get to the exact positions and it is also taking 2~3 minutes.
I am in search of better solutions and I will be thankful for the help.

답변 (1개)

prasanth s
prasanth s 2019년 10월 17일
Here is one of the methods using 'diff' function.
use following code to get all the difference values and plot those values to findout an limit value to cut the lowermost spike.
D=diff(df_10s_ufreq);
figure,plot(D);
Let we take the limit value '-0.5e-5'.
use following code to get all indices below the limit value.
L=D<(-0.5e-5);
Again apply 'diff' and find initial change of spike. it will return desired indices.
V=diff(L);
indices=find(V>0)

카테고리

Help CenterFile Exchange에서 Get Started with MATLAB에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by