% problem occured at following line (line 61) if length(slp_po_t)
%Main code
clear;close all;lat=ncread('ds010.0.20130511.20130516.nc','lat');lon=ncread('ds010.0.20130511.20130516.nc','lon');slp=ncread('ds010.0.20130511.20130516.nc','slp');%size(slp1)
%[row, col] = size(slp1);
slp_cen = 99999999999.9;for icen = 1:length(slp) for jcen = 1:length(slp) if slp(icen,jcen)<slp_cen slp_cen = slp(icen,jcen); i_cen = icen; j_cen = jcen; end endend[lonx,laty] = meshgrid(lat,lon);i_ceny = laty(i_cen,1);j_cenx = j_cen;lonx = lonx - j_cenx;laty = laty - i_ceny;%---wavenumber 1---sigma=0.9----r<100km-
rmax = 25;rmin = 0.5;thetad=2; %interpolate angle grid
disd =0.5 ; %interpolate grid
for idis = 1:1:((rmax-rmin)/disd+1) for ith = 1:1:(360/thetad) x_po_in(ith,idis) = ((idis-1)*disd+rmin)*cos((ith-1)*thetad*pi/180); y_po_in(ith,idis) = ((idis-1)*disd+rmin)*sin((ith-1)*thetad*pi/180); endendsize(lonx)size(laty)slp1=slp(:,:,12);a=single(lonx);b=single(laty);size(slp1)slp_po_in = interp2(a,b,slp1,x_po_in, y_po_in,'linear'); for i = 1:size(x_po_in,2) slp_w1_in(:,i) = fft(slp_po_in(:,i),1,1); slp_w1_in(:,i) = slp_w1_in(:,i) - sum(slp_w1_in(:,i))/180;end[x_rc_in,y_rc_in] = meshgrid(-25:0.5:25,-25:0.5:25);for i = 1:size(x_rc_in,1) for j = 1:size(x_rc_in,2) logislp = find((abs(x_po_in - x_rc_in(i,j))<0.5)&(abs(y_po_in - y_rc_in(i,j))<0.5)); slp_po_t = slp_w1_in(logislp); if length(slp_po_t) slp_w1_w1_rc_in(i,j) = sum(slp_po_t)/~isempty(slp_po_t); end endend[x_min_in,y_min_in] = find(slp_w1_w1_rc_in==min(min(slp_w1_w1_rc_in)));x_min_in = x_min_in(1);y_min_in = y_min_in(1); theta0p9_min_in(ik) = atan(y_rc_in(x_min_in,y_min_in)/x_rc_in(x_min_in,y_min_in))*180/pi;if x_rc_in(x_min_in,y_min_in)>=0 &&y_rc_in(x_min_in,y_min_in)>=0 theta0p9_min_in(ik) %do nothing
elseif x_rc_in(x_min_in,y_min_in)<0 &&y_rc_in(x_min_in,y_min_in)>=0 theta0p9_min_in(ik) = theta0p9_min_in(ik)+180;elseif x_rc_in(x_min_in,y_min_in)<0 &&y_rc_in(x_min_in,y_min_in)<0 theta0p9_min_in(ik) = theta0p9_min_in(ik)+180;elseif x_rc_in(x_min_in,y_min_in)>=0 &&y_rc_in(x_min_in,y_min_in)<0 theta0p9_min_in(ik) = theta0p9_min_in(ik)+360;endif plot ==1 %#ok<LTARG>
figure [~,~] = contourf(a,b,slp1); figure contour(x_po_in,y_po_in,slp_po_in); figure contour(x_po_in,y_po_in,slp_w1_in); figure [~,~] = contourf(x_rc_in,y_rc_in, slp_w1_w1_rc_in); end
Best Answer