Borrar filtros
Borrar filtros

Find the location of the change

45 visualizaciones (últimos 30 días)
Tala Hed
Tala Hed el 13 de En. de 2019
Editada: Star Strider el 25 de En. de 2019
Hi :)
I would like to find the location of the change in an array. The arrays are ramp and hold, i e. they contain several identical values then start to increase and then become constant again. The increase rates are different in each array.They are plotted below:
Capture.JPG
I want to plot a vertical line at the end and begining of each constant section. Can you help me with that?
Thanks

Respuesta aceptada

Star Strider
Star Strider el 13 de En. de 2019
Editada: Star Strider el 25 de En. de 2019
If you have the Signal Processing Toolbox, consider using the findchangepts (link) function, with the 'Statistic','mean' name-value pair. (The findchangepts function was introduced in R2016a.)
EDIT — (25 Jan 2019 at 20:37 UCT)
Thank you for attaching your data.
The core MATLAB ischange (link) function (introduced in R2017b) turns out to be the best option for this.
The Code —
D = load('XX.mat');
XX = D.XX;
t = linspace(0, numel(XX), numel(XX));
[TF,SegMean,SegVar] = ischange(XX,'linear','Threshold',500);
cpts = find(TF);
figure
plot(t, XX)
hold on
plot(t(cpts), XX(cpts), '^r', 'MarkerFaceColor','r')
hold off
The Plot —
Find the location of the change - 2019 01 25.png

Más respuestas (1)

Image Analyst
Image Analyst el 13 de En. de 2019
Use diff() and line()
Something like (untested)
dy = 0, diff(y)];
% Get non-zero dy
mask = dy~= 0;
dy = dy(mask);
xx = x(mask); % Get x values at those locations.
hold on;
for k = 1 : length(dy)
thisX = xx(k); % Find the x location.
line([thisX, thisX], ylim, 'Color', 'r', 'LineWidth', 2); % Draw a vertical red line.
end
  1 comentario
Tala Hed
Tala Hed el 25 de En. de 2019
Thanks a lot. Sorry for my delay. Been out of the country.
The code didnt work. I tried to understand your code and use it, wasent succseful. Here is the vector. Would be grateful if you can help plotting the lines.
Thanks

Iniciar sesión para comentar.

Categorías

Más información sobre Calendar en Help Center y File Exchange.

Productos


Versión

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by