How do I fix my meshgrid?
36 views (last 30 days)
Show older comments
This is the code i have inserted and im getting this. Where is the mistake in my coding and how do I fix this?
gridspacing=-8:0.5:8;
Y=-8:0:8;
Z=-8:1.5:8;
[x,Y] = meshgrid (-8:0.5:8);
Z=sqrt(exp(-x.^2-Y.^2))
surf(x,Y,Z,x.*exp(Y))
Z(R==0)=1
z = sin (R)/R
4 Comments
Katie
on 24 Oct 2019
In your Y vector, your step size is 0 so it's an empty vector. Are you trying to pre-allocate the memory for the Y matrix that is generated by the meshgrid function? If so, you can use the following:
Y=zeros(length(gridspacing),length(gridspacing));
However, this will not change the plotted result. If you could provide some more info about what you're expecting to see, that would be great!
Accepted Answer
Katie
on 24 Oct 2019
Hi! Thanks for providing extra details! Below are the steps I used with explanations for each. I also labeled them in accordance with the steps in the instructions you provided.
close all; clear all; clc; %close all open figure windows, clear the variables, and clear the command window
%Step 1:
gridspacing = -8: 0.5: 8; %setup the grid spacing vector that will be used to make the meshgrid
[X Y]=meshgrid(gridspacing); %create the mesh grid
%Step 2:
R=sqrt(X.^2 + Y.^2); %Create a 2D set of values from the X and Y grids created with meshgrid
In the instructions you provided, it says that R=X^2 + Y^2. If you use this equation, you get a plot that does not match the figure you have provided. If you use the R equation in the instructions, you do get the right answers. Additionally, it says to treat X and Y like vectors. I think by this they're hinting that you should use element-wise powers (.^ rather than ^) on the matrices, not use vectors for x and y.
%Step 3:
Z=sin(R)./R; %use element-wise division to do this calculation on each grid point
Z(R==0)=1; %in any location that R is equal to 0, set Z=1
%Step 4:
figure;
mesh(x,y,Z); %surf gives you a similar plot but it's shaded in rather than a wire mesh.
The default colormap is going to be perula, while it looks like the colormap for the example figure you show is jet. You can easily change this with one line of code after you use the mesh function:
colormap('jet');
Hope this helps!
More Answers (0)
See Also
Categories
Find more on Surface and Mesh Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!