【问题标题】:Compute volume using isosurface command in matlab?在matlab中使用等值面命令计算体积?
【发布时间】:2017-05-04 15:00:25
【问题描述】:

如何在 MATLAB 中使用等值面命令计算体积。我有一个网格数据 xg,yg,zg,所有大小均为 90 x 90 x 90,我将其插入到 xq、yq、zq 中,大小为 250 x 250 x 250
f 的大小为 (xg,yg,zg),每个网格都有一些密度值。

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 时生成的对象的体积

【问题讨论】:

    标签: matlab computational-geometry


    【解决方案1】:

    所以,我有一个解决方案,如果您认为我的解决方案是错误的,请纠正我。

    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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-05
      相关资源
      最近更新 更多