如何在Scilab中制作矩阵平均值计算器?

时间:2013-10-28 14:47:28

标签: matlab math matrix average scilab

我想在scilab中制作一个非重叠的3D矩阵,并使用NxNxN大小的立方体循环它,将立方体中体素的平均值指定为中心体素。

转到第2页,看看我到底需要什么。 https://drive.google.com/file/d/0B5wCiQEnPJYZdGxCcmRBc0NHNGc/edit?usp=sharing

提前非常感谢你。

P.S。不要担心无效的平均音量问题。 Matrix可以是100x100x100或类似。

1 个答案:

答案 0 :(得分:1)

您描述的问题与您发布的文章不同。我按照您的描述,但将其分成多行,以便您可以轻松地根据您的要求进行调整。

与您在其他问题中发布的the MatLab answer非常相似。我不知道SciLab中的mat2cellcellfun与其他答案中使用的内容类似。

clear; clc

K = 100
N = 5

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 = volume((1:N)+N*x, (1:N)+N*y, (1:N)+N*z);

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