How to plot under certain conditions ?

Hello guys, I want to plot every point (x element of [-4,4], y element of [-4,4]) that meets the following conditions:
  • norm([x;y])<=4
The syntax is not right here, but I hope you understand what I'm looking for. For example the point x = 2, y = 2 would meet my requirements and therefore should be plotted.
I am aware of the fact that this is just another way of drawing a circle, but I want to dynamically change my norm (i.e. norm([x;y],1)). I am thankful for every bit of help I can get.

2 个评论

Have you taken a look at meshgrid?
[X,Y]=meshgrid(-4:4,-4:4);
D=sqrt(X.^2+Y.^2);
I know meshgrid but how do I plot my circle now ?

请先登录,再进行评论。

 采纳的回答

If you are not actually after plotting point, you can use fill.
radius=4;
theta=linspace(0,2*pi,200);
x=radius*cos(theta);
y=radius*sin(theta);
fill(x,y,'r')
axis([-radius radius -radius radius])
daspect([1 1 1])
If you want to plot the points:
radius=4;
[X,Y]=meshgrid(-radius:0.1:radius);
D=(X.^2+Y.^2);
plot(X(D<=radius^2),Y(D<=radius^2),'.')
axis([-radius radius -radius radius])
daspect([1 1 1])

1 个评论

Thank you this is almost perfect, and will do the job just fine.

请先登录,再进行评论。

更多回答(1 个)

Since Matlab R2016 with auto expanding:
x = -4:4;
x2 = x.^2;
D = x2 .* x2.' < 16;
Note: Comparing with 4^2 is cheaper than calculating the SQRT().

类别

标签

Community Treasure Hunt

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

Start Hunting!

Translated by