现在我得到一个5维矩阵,其中M [j] [i] [l] [ref] [0] ...

在这个矩阵中,j,i属于0〜4,而l = 0。 ref的范围是0到4。

我只想根据ref的值计算数量。

例如,


如果ref = 0,我将做count0 ++,
如果ref = 1,则count1 ++,
如果ref = 2,则为count2 ++
...


因此,我不在乎M的值是多少,我只想知道具有不同ref值的出现频率。

谢谢。

最佳答案

您不清楚要做什么取决于M的实际内容,我想这包含要添加到个人计数中的某种变量计数吗?

在这种情况下,这样的事情怎么样:

int j, i, ref;
int counts[5];
for(ref=0; ref<5; ref++)
    counts[ref]=0;
for(j=0; j<4; j++)
    for(i=0; i<5; i++)
        for(ref=0; ref<5; ref++)
            counts[ref]+=M[j][i][0][ref][0];


(我已经用数组替换了您单独的“ count”变量,这使事情变得容易得多。)

编辑:我只是看到您不在乎M的内容。在那种情况下,我不太了解您要做什么。由于尺寸是恒定的,因此对于ref的某个值存在的条目数始终是恒定的,并且对于所有ref都始终相同-在这种情况下为5 * 5 = 25,因为您有五个沿着j和i维度的每个条目。

如果这不是您想要的,请进行说明。

关于c - 一个基于维度内容之一的简单c矩阵计数问题。[C语言],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2144986/

10-11 23:14
查看更多