MATLAB Answers

0

Drawing a circle of ones by using a pre-defined grid with pcolor

Asked by Sahin Kurekci on 14 Sep 2019 at 12:35
Latest activity Commented on by Sahin Kurekci on 14 Sep 2019 at 17:57
I have the following grid in the beginning of my code:
a = 25, % This will be the radius of the circle
r = linspace(0,sqrt(2)*2*a,501);
phi = linspace(0,2*pi,501);
[R,Phi] = meshgrid(r,phi);
X = R.*cos(Phi);
Y = R.*sin(Phi);
And I plot all my figures by using the code segment:
figure()
h = pcolor(X,Y,abs(u_sum).^2); % u_sum is an electric field distribution
set(h,'EdgeColor','none');
box on
grid on
axis equal
xlim([-1,1]*r(end)/sqrt(2));
ylim([-1,1]*r(end)/sqrt(2));
colormap(hot);
colorbar;
xlabel('x');
ylabel('y');
title(['Title'])
hold on
rectangle('Position',[-1,-1,2,2]*a,'Curvature',1,...
'LineWidth',1,'EdgeColor','w','FaceColor','None',...
'LineStyle','--')
hold off
set(gca,'Layer','top')
The output of this code is:
pcolor_circle.jpg
Now, I want to draw a circle full of ones with radius "a" and place it on the same grid. Thus, I want the circle at the center of the above picture to be filled with ones, and zeros at rest. How can I do that using pcolor and the same grid?
Alternatively, how can I implement a Gaussian shape for the same grid using pcolor?

  0 Comments

Sign in to comment.

Products


Release

R2019a

1 Answer

Answer by darova
on 14 Sep 2019 at 13:45
 Accepted Answer

Z1 = R <= a^2; % place ones
Gauss shape
9d128aef1457349d67843e863bf84aaf24f66ecf
Place R isntead of x

  5 Comments

Thanks @darova. That solves my problem. However, I still couldn't fill a 2D Gaussian into that circle. I tried
Gaussian1 = exp(-(R^2)./2);
Gaussian2 = 10*exp(-(R^2)./(2*100));
figure()
h = pcolor(X,Y,Gaussian1);
h = pcolor(X,Y,Gaussian2);
but none of them resulted in a Gaussian shape as I desired. Do you have a suggestion for that?
Guess what
11Untitled.png
Of course... That is a very naught square there. Thanks.

Sign in to comment.