フィルターのクリア

How to remove some parts of a Matlab plot?

19 ビュー (過去 30 日間)
Pooya Zeg
Pooya Zeg 2021 年 4 月 3 日
コメント済み: Star Strider 2021 年 4 月 3 日
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

採用された回答

Star Strider
Star Strider 2021 年 4 月 3 日
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 件のコメント
Pooya Zeg
Pooya Zeg 2021 年 4 月 3 日
Great! Thanks. It worked. I'm just wondering if this can also work for "contour."
Star Strider
Star Strider 2021 年 4 月 3 日
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.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeContour Plots についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by