![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/571229/image.png)
How to remove some parts of a Matlab plot?
19 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello,
I just wanted to know if it is possible to remove some parts of a Matlab plot. The solution is the specified region and below is the code,
clc;
clear;
close all;
w = -pi:0.01:pi;
r1 = 3;
r2 = 4;
x1 = 2.5;
y1 = -2;
x2 = 1;
y2 = 0.5;
x11 = x1+r1*cos(w);
y11 = y1+r1*sin(w);
x22 = x2+r2*cos(w);
y22 = y2+r2*sin(w);
x = -5:0.01:5;
yy1 = x-2;
yy2 = -x+2;
plot(x11,y11,'r',x22,y22,'b',x,yy1,'k',x,yy2,'k')
grid on
axis square
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/571224/image.jpeg)
0 commentaires
Réponse acceptée
Star Strider
le 3 Avr 2021
Try this:
w = -pi:0.01:pi;
r1 = 3;
r2 = 4;
x1 = 2.5;
y1 = -2;
x2 = 1;
y2 = 0.5;
x11 = x1+r1*cos(w);
y11 = y1+r1*sin(w);
x22 = x2+r2*cos(w);
y22 = y2+r2*sin(w);
x = -5:0.01:5;
yy1 = x-2;
yy2 = -x+2;
inred1 = inpolygon(x,yy1,x11,y11);
inred2 = inpolygon(x,yy2,x11,y11);
inblu1 = inpolygon(x,yy1,x22,y22);
inblu2 = inpolygon(x,yy2,x22,y22);
yy1(inred1 & inblu1) = NaN;
yy2(inred2 & inblu2) = NaN;
figure
plot(x11,y11,'r',x22,y22,'b',x,yy1,'k',x,yy2,'k')
grid on
axis equal
producing:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/571229/image.png)
I changed the axis call to make the circles appear round.
4 commentaires
Star Strider
le 3 Avr 2021
As always, my pleasure!
With contour, likely not directly. It would be necessary to get the individual contours (difficult, hoiwever not impossible) and plot them separately, along with any other lines. Then a similar approach would likely work.
Note that contours, at least in my experience, do not overlap as the circles do here, so I have no idea how that would apply.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Contour Plots dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!