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 Commenti

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 ?

Accedi per commentare.

 Risposta accettata

Rik
Rik il 26 Nov 2017
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 Commento

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

Accedi per commentare.

Più risposte (1)

Jan
Jan il 25 Nov 2017
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().

Tag

Richiesto:

il 25 Nov 2017

Commentato:

il 26 Nov 2017

Community Treasure Hunt

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

Start Hunting!

Translated by