outerline of plot with multiple peaks?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Madan Kumar
el 9 de Abr. de 2019
Comentada: Adam Danz
el 9 de Abr. de 2019
Hi,
I have a plot with multiple peaks (here, 2 peaks for simplicity and data is also attached). I want to plot the outerilne above the same plot. How can I do that? I tried using unique(x); but not getting the expected results,particularly the problem area (shown in figure). I Here is my code (I am using Matlab2018a),
a=importdata('abc.txt');
yyn=[a(:,2)' a(:,4)'];
bbn=[a(:,1)' a(:,3)'];
%using unique
[abn acn]=unique(bbn);
plot(a(:,1),a(:,2),'k')
hold on
plot(a(:,3),a(:,4),'k')
hold on
plot(abn,yyn(acn),'r')
Any help is appreciated. Thank you.
2 comentarios
Adam Danz
el 9 de Abr. de 2019
I'm having a hard time understanding your goal. Could you explain again? Also the code and the attached file do not reproduce the image you shared.
Respuesta aceptada
Adam Danz
el 9 de Abr. de 2019
Editada: Adam Danz
el 9 de Abr. de 2019
I'm going to go out on a limb and assuming you want to plot a line that overlaps the black curve until its end and then overlaps the blue curve from that point forward. This is what I understood in your question. If this isn't what you're looking for, let me know.
%import data
a=importdata('abc.txt');
% Plot 2 curves
plot(a(:,1),a(:,2),'k', 'LineWidth', 4)
hold on
plot(a(:,3),a(:,4),'b', 'LineWidth', 4)
% find index of bottom line that corresponds with the end of the upper line
[~, idx] = min(abs(a(:,3) - a(end,1)));
% Isolate the overlap coordinates and plot them
newX = [a(:,1); a(idx:end,3)];
newY = [a(:,2); a(idx:end,4)];
plot(newX, newY, 'r-', 'LineWidth',1.5)
2 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Annotations 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!