function [dvda]=interp_dvda(a0,b0,c0) load('V_dV_ani.mat','aa','bb','cc','dv_a') ha = aa(2)-aa(1); hb = bb(2)-bb(1); hc = cc(2)-cc(1); ja=min(floor((a0-aa(1))/ha)+1,size(aa,2)-1); jb=min(floor((b0-bb(1))/hb)+1,size(bb,2)-1); jc=min(floor((c0-cc(1))/hc)+1,size(cc,2)-1); ja=max(ja,1);jb=max(jb,1);jc=max(jc,1); N=zeros(1,8); nz=size(a0,1);ny=size(a0,2);nx=size(a0,3); dvda=zeros(size(a0)); for iz=1:nz for iy=1:ny for ix=1:nx a=a0(iz,iy,ix); b=b0(iz,iy,ix); c=c0(iz,iy,ix); a00=aa(ja(iz,iy,ix)); b00=bb(jb(iz,iy,ix)); c00=cc(jc(iz,iy,ix)); N(1)=(ha+a00-a)*(hb+b00-b)*(hc+c00-c)/(ha*hb*hc); N(2)=(a-a00)*(hb+b00-b)*(hc+c00-c)/(ha*hb*hc); N(3)=(ha+a00-a)*(b-b00)*(hc+c00-c)/(ha*hb*hc); N(4)=(a-a00)*(b-b00)*(hc+c00-c)/(ha*hb*hc); N(5)=(ha+a00-a)*(hb+b00-b)*(c-c00)/(ha*hb*hc); N(6)=(a-a00)*(hb+b00-b)*(c-c00)/(ha*hb*hc); N(7)=(ha+a00-a)*(b-b00)*(c-c00)/(ha*hb*hc); N(8)=(a-a00)*(b-b00)*(c-c00)/(ha*hb*hc); R=compR(dv_a,ja(iz,iy,ix),jb(iz,iy,ix),jc(iz,iy,ix)); dvda(iz,iy,ix)=N*R; end end end end function R=compR(c,aj,bj,cj) R=zeros(8,1); R(1)=c(aj,bj,cj); R(2)=c(aj+1,bj,cj); R(3)=c(aj,bj+1,cj); R(4)=c(aj+1,bj+1,cj); R(5)=c(aj,bj,cj+1); R(6)=c(aj+1,bj,cj+1); R(7)=c(aj,bj+1,cj+1); R(8)=c(aj+1,bj+1,cj+1); end