使用 for 循环获取矩阵中特定点的平均值

Getting the average of specific points in a matrix using for loops

我有一个名为 V1all 的矩阵,其中有 1556480 个变量。全部在第一栏。我试图获得每 1024 点的平均值。即前 1024 点的平均值,然后是第二个 1024 点的平均值,依此类推。最后我应该有一个 1520 点的矩阵。我有以下代码,但我只得到一个值重复 1520 次。

V1 = zeros(1520,1);
for jj = 1024:1024:1556480;
V1(1:1520) = mean(V1all(jj-1023:jj));
end

知道我做错了什么吗?问候,杰尔

您可以在一行中完成:重新整形为 1024 行矩阵,然后应用 mean 计算每列的平均值:

V1 = mean(reshape(V1all, 1024, []));

如果您真的想使用循环:您没有正确索引 V1。修改您的代码如下:

V1 = zeros(1520,1);
for n = 1:1520;
    jj = 1024*n;
    V1(n) = mean(V1all(jj-1023:jj));
end