【发布时间】:2018-09-23 02:15:34
【问题描述】:
我有一个 64 X 64 矩阵,我需要找到它的列平均值。
但是,我需要除以矩阵中非零的总数,而不是除以每列中的元素总数(即 64)。
我设法让它为单个列工作,如下所示。作为参考,生成我的矩阵的函数标题为fmu2(i,j)。
q = 0;
for i = 1:64
if fmu2(i,1) ~= 0;
q = q + 1;
end
end
for i = 1:64
mv = (1/q).*sum(fmu2(i,1));
end
这适用于生成第一列的“平均值”。但是,我在循环此过程时遇到了麻烦,因此我将获得每列的平均值。我尝试做一个嵌套的 for 循环,但它只是计算整个 64 X 64 矩阵的平均值,而不是一次计算一列。这是我尝试过的:
q = 0;
for i = 1:64
for j = 1:64
if fmu2(i,j) ~= 0;
q = q +1;
end
end
end
for i = 1:64
for j = 1:64
mv = (1/q).*sum(fmu2(i,j));
end
end
就像我说的,这只是给了我整个矩阵的一个值,而不是每列的 64 个单独的“平均值”。任何帮助将不胜感激。
【问题讨论】: