How to remove some parts of a Matlab plot?
29 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Pooya Zeg
il 3 Apr 2021
Commentato: Star Strider
il 3 Apr 2021
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
0 Commenti
Risposta accettata
Star Strider
il 3 Apr 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:
I changed the axis call to make the circles appear round.
4 Commenti
Star Strider
il 3 Apr 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.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Contour Plots in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!