2017-05-04 13 views
0

MATLABでisosurfaceコマンドを使用してボリュームを計算する方法。私はxq、yq、zqに250 x 250 x 250
のサイズで補間する90 x 90 x 90のグリッドデータxg、yg、zgを持っており、fのサイズは(xg、yg、zg)それは各グリッドについていくらかの濃度値を有する。matlabのisosurfaceコマンドを使用してボリュームを計算しますか?

G=interp3(xg,yg,zg,f,xq,yq,zq,'Cubic'); 
p1=patch(isosurface(xq,yq,zq,G,1.5)); 
isonormals(xq,yq,zq,G,p1); 

は、今私はそう密度1.5

答えて

0

で、この等値面コマンドによって作られた物の量を知りたいと思った、私はあなたが私の解決策が間違っていると思うなら、私を修正してください、解決策を持っています。

divide=100; 
b=linspace(-1,1,divide+1); 
a=linspace(-1,1,divide); 
[x,y,z]=meshgrid(a,a,a); 
for i=1:length(x) 
    for j=1:length(y) 
     for k=1:length(z) 
     G(i,j,k)=rand(1); 
     end 
    end 
end 
actvolume=2^3 
spacing=b(2)-b(1); 
computedVolu=sum(G(:))*spacing^3 

isovalue=0.5; 
p = patch(isosurface(x, y, z, G, isovalue)); 
isonormals(x,y,z,G, p); 
set(p,'FaceColor','b','EdgeColor','none','FaceAlpha',1); 
関連する問題