Why always NaNs in my script?
Show older comments
Hi, in my code, in the third loop, somehow the variable:
z_i_meshgrid
always have half of it fill with NaNs, can anyone explain this plz? why doesnt this happen in the first few loops.
Many thanks,
x_0=1;
y_0=6;
gamma=0.2;
tau=0.0002;
x_grid=-9:0.2:9;
y_grid=-8:0.2:8;
[X, Y] = meshgrid(x_grid,y_grid);
z_meshgrid=cos(X/2).*cos(Y) + Y/10 - X/5;
%%
interpolation_accuracy=5;
[x_meshgrid,y_meshgrid]=meshgrid(x_grid,y_grid);
x_i_location=find(x_grid==x_0);
y_i_location=find(y_grid==y_0);
z_0=z_meshgrid(y_i_location,x_i_location);
clear x_grid y_grid;
[gradient_x_grid,gradient_y_grid] = gradient(z_meshgrid);
gradient_zx_0 = gradient_x_grid(y_i_location,x_i_location)
gradient_zy_0 = gradient_y_grid(y_i_location,x_i_location)
cnt=1;
A=[x_0,y_0,z_0];
threshold = tau+1;
while threshold > tau
% calculation of (x_i,y_i)
x_i = x_0 - gamma*gradient_zx_0;
y_i = y_0 - gamma*gradient_zy_0;
% Interpolation around the point of (x_i,y_i)
x_i_grid=linspace(x_0,(2*x_i-x_0),interpolation_accuracy);
y_i_grid=linspace(y_0,(2*y_i-y_0),interpolation_accuracy);
[x_i_meshgrid, y_i_meshgrid] = meshgrid(x_i_grid,y_i_grid);
z_i_meshgrid = interp2(x_meshgrid,y_meshgrid,z_meshgrid,...
x_i_meshgrid,y_i_meshgrid,'cubic');
if cnt==1
x_i_location = sum(size(x_i_grid)/2);
y_i_location = sum(size(y_i_grid)/2);
end
z_i=z_i_meshgrid( y_i_location , x_i_location );
%output
cnt=cnt+1
A(cnt,:)=[x_i,y_i,z_i];
%new gradient
gradient_x_grid = interp2(x_meshgrid,y_meshgrid,gradient_x_grid, ...
x_i_meshgrid,y_i_meshgrid);
gradient_x_i=gradient_x_grid( y_i_location , x_i_location )
gradient_y_grid = interp2(x_meshgrid,y_meshgrid,gradient_y_grid, ...
x_i_meshgrid,y_i_meshgrid);
gradient_y_i=gradient_y_grid( y_i_location , x_i_location )
threshold = sqrt( (x_i-x_0)^2+(y_i-y_0)^2 );
if cnt== 3
break
end
x_0=x_i;
y_0=y_i;
x_meshgrid=x_i_meshgrid;
y_meshgrid=y_i_meshgrid;
z_meshgrid=z_i_meshgrid;
end
A
Accepted Answer
More Answers (0)
Categories
Find more on Axis Labels 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!