I have the following plot:
Nx=5; % let it be an odd number for symmetry
Ny=5;
Nx1=Nx-1;
Ny1=Ny-1;
R= 5; %peak1
L=-5; %peak2
d=2; % distance between the two peaks
l=2; % length of each peak
V=zeros(Nx,Ny);
V((Nx1/2)-1,((Ny1/2)+1-(l/2)):((Ny1/2)+1+(l/2)))=R;
V((Nx1/2)-1+d,((Ny1/2)+1-(l/2)):((Ny1/2)+1+(l/2)))=L;
V=V';
x=linspace(0,25,25);
y=linspace(0,25,25);
h = meshgrid(V);
surf(x,y,h);
Since it is not defined as an exponential function, Is it possible to use interp to have a smooth surf plot (that makes it look less rectangular)?

 Accepted Answer

Adam
Adam on 21 Aug 2014
interp2
should do what you want.

3 Comments

Thank you for your reply. I am trying to implement it, but keep getting a weird plot. Could you please guide me on how to do this. This is what I got:
Nx=5; % let it be an odd number for symmetry
Ny=5;
Nx1=Nx-1;
Ny1=Ny-1;
R= 5; %peak1
L=-5; %peak2
d=2; % distance between the two peaks
l=2; % length of each peak
V=zeros(Nx,Ny);
V((Nx1/2)-1,((Ny1/2)+1-(l/2)):((Ny1/2)+1+(l/2)))=R;
V((Nx1/2)-1+d,((Ny1/2)+1-(l/2)):((Ny1/2)+1+(l/2)))=L;
V=V';
x=linspace(0,25,25);
y=linspace(0,25,25);
h = meshgrid(V);
%surf(x,y,h);
[Xq,Yq] = meshgrid(-3:0.25:3);
Vq = interp2(x,y,h,Xq,Yq,'cubic');
surf(Xq,Yq,Vq);
Adam
Adam on 21 Aug 2014
Edited: Adam on 21 Aug 2014
Do you really want your interpolated grid to run from -3 to 3 given that your original ran from 0 to 25?
Try:
[Xq,Yq] = meshgrid(0:0.25:25);
Vq = interp2(x,y,h,Xq,Yq )
instead
mick777
mick777 on 22 Aug 2014
It works. I understood where I went wrong. Thanks

Sign in to comment.

More Answers (0)

Categories

Asked:

on 21 Aug 2014

Commented:

on 22 Aug 2014

Community Treasure Hunt

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

Start Hunting!