2013-12-19 2 views
0

나는 3D 행렬을 평균화하기위한 Scilab 프로그램을 가지고 있지만 괜찮습니다. 그러나 평균을 단지 설정 값으로하는 대신에, 특정 질량 합 (sum (n * n * n))을 원합니다. 사람이에 대한 간단한 해결책이있는 경우Scilab 또는 MATLAB에서 X 볼륨으로 입방체를 얻으시겠습니까?

K = 100 
N = 5 
A = 1 

mid = floor(N/2) 

volume = rand(K, K, K) 

cubeCount = floor(K/N) 

for x=0:cubeCount­1 
    for y=0:cubeCount­1 
     for z=0:cubeCount­1 

      // Get a cube of NxNxN size 
      cube = 20; 


      //Calculate the average value of the voxels in the cube 
      avg = sum(cube)/(N * N * N); 

      // Assign it to the center voxel 
      volume(N*x+mid+1, N*y+mid+1, N*z+mid+1) = avg 

     end 
    end 
end 

disp(volume) 

, 말해주십시오.

답변

1

을 당신이 갖고있는 것 같다 막 ​​자기를했다. 모든 사용자가 동일한로 변경 큐브 것 할 필요가있다.

cube = while sum(A * A * A) < 10, 

A=A+1; 

이렇게하면 복셀의 정확한 질량 합계를 얻을 수 있습니다.

+0

하지만이 방법으로 모든 방향으로 나아갈 수 있습니다. – AlanGhalan

+0

무슨 뜻인지 확실하지 않아요. –

관련 문제