function plot_convergence_str() % load('ani_rmin1.5_cab173.mat','a_log','b_log','c_log') % LOOP=[1,10,20,30,50,100,173]; % loop=1; % aPhys=a_log{loop,2};bPhys=b_log{loop,2};cPhys=c_log{loop,2}; % loop = 0; disp(['loop = ',num2str(loop)]) % aPhys(:)=1;bPhys(:)=1;cPhys(:)=0; % plot_str_smooth(aPhys,bPhys,cPhys); % saveas(gcf,['ani_str',num2str(loop)],'png') % LOOP=[1,10,20,30,50,200,347]; % LOOP=[200]; % load('ani_fittingALL_pnorm4.mat','a_log','b_log','c_log') % LOOP=[1,2,3,5,10,15,20,40,68]; load('ani_rmin1.5_concurrent_fitting4.mat','a_log','b_log','c_log') LOOP=[1,2,3,5,10,15,20,29]; for i=1:size(LOOP,2) loop=LOOP(i);disp(['loop = ',num2str(loop)]) aPhys=a_log{loop,2};bPhys=b_log{loop,2};cPhys=c_log{loop,2}; % plot_str_smooth(aPhys,bPhys,cPhys); plot_ani(aPhys,bPhys,cPhys) saveas(gcf,['opt_path\ani_direct_str',num2str(loop)],'png') figure(2) plot_ellipse_new(aPhys,bPhys,cPhys); saveas(gcf,['opt_path\ani_direct_dist',num2str(loop)],'png') end end function plot_str_smooth(aPhys,bPhys,cPhys) nz=size(aPhys,1);ny=size(aPhys,2);nx=size(aPhys,3); l=0.49; xx=-1:1:1; [dx,dy,dz]=meshgrid(xx,xx,xx); dX=[dx(:),dy(:),dz(:)].*l; num_p=size(xx,2)^3; count=1; a_fun = zeros(nx*ny*nz*num_p,1); b_fun = zeros(nx*ny*nz*num_p,1); c_fun = zeros(nx*ny*nz*num_p,1); in1=zeros(nx*ny*nz*num_p,3); for i=1:nx for j=1:ny for k=1:nz for tt=0:num_p-1 a_fun(count*num_p-tt,1) = aPhys(k,j,i); b_fun(count*num_p-tt,1) = bPhys(k,j,i); c_fun(count*num_p-tt,1) = cPhys(k,j,i); in1(count*num_p-tt,:)=[i-1/2,j-1/2,k-1/2]+dX(tt+1,:); end count=count+1; end end end Fa=scatteredInterpolant(in1(:,1),in1(:,2),in1(:,3),a_fun,'natural','linear'); Fb=scatteredInterpolant(in1(:,1),in1(:,2),in1(:,3),b_fun,'natural','linear'); Fc=scatteredInterpolant(in1(:,1),in1(:,2),in1(:,3),c_fun,'natural','linear'); x2=0:0.1:nx; y2=0:0.1:ny; z2=0:0.1:nz; [x,y,z]=meshgrid(x2,y2,z2); a_sim = Fa(x,y,z);b_sim = Fb(x,y,z);c_sim = Fc(x,y,z); % PLOT---------------------------------------- p=cos(2*pi*(x-1/2))+ a_sim.*cos(2*pi*(y-1/2))+ b_sim.*cos(2*pi*(z-1/2))- c_sim; figure(1) clf; set(gcf,'position',[50 50 1600 700]) isosurface(x,y,z,p,0); isocaps(x,y,z,p,0); axis equal;axis off; colormap([18 184 246]./256); view(0,0); %视角的控制 lighting phong; %光照模式 camlight right; %光源位置 material metal end