How to get matlab to find a point on a graph where there is a sudden change?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Joe Smith
el 5 de Mzo. de 2015
Comentada: Image Analyst
el 5 de Mzo. de 2015
I have a graph of 'data point number' against 'distance'.
Around data point number 2500 damage is introduced and the graph has a sudden spike.
Is there some way of getting matlab to detect this sudden change?
0 comentarios
Respuesta aceptada
Michael Haderlein
el 5 de Mzo. de 2015
You can define a threshold value either for y or for diff(y). Assume you define failure as point when y>0.2:
plot(x,y), hold all
ind=find(y>0.2,1,'first');
plot(x(ind:end),y(ind:end),'rx')
fprintf(1,'Failure at x = %d\n',ind);
If you want to define the threshold on diff(y), do the same but use ind=find(diff(y)>0.2,1,'first'); instead.
2 comentarios
Image Analyst
el 5 de Mzo. de 2015
%d means to print the value of ind assuming that ind is an integer. \n adds a line feed (new line) after it's been printed.
Más respuestas (0)
Ver también
Categorías
Más información sobre Graph and Network Algorithms en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!