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 comentarios

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

Iniciar sesión para comentar.

 Respuesta aceptada

Rik
Rik el 26 de Nov. de 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 comentario

DerMischa
DerMischa el 26 de Nov. de 2017
Thank you this is almost perfect, and will do the job just fine.

Iniciar sesión para comentar.

Más respuestas (1)

Jan
Jan el 25 de Nov. de 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().

Etiquetas

Preguntada:

el 25 de Nov. de 2017

Comentada:

el 26 de Nov. de 2017

Community Treasure Hunt

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

Start Hunting!

Translated by