Matlab 一次平均一列的序列行数

Matlab 一次平均一列的序列行数,matlab,sequence,average,rows,Matlab,Sequence,Average,Rows,我有一个变量m1中的数据数组,它是一个288x13数组。我需要对每列按12次顺序平均24行。我曾多次尝试通过计算平均值来使用此索引we,但我得到了错误的答案。我想要的结果(meanf1)是一个12x13数组,显示每列数据的12行平均值。谢谢 we = 1 25 49 73 97 121 145 169 193 217 241 265 for ii = 1:13; for jj = 1:12; m

我有一个变量
m1
中的数据数组,它是一个
288x13
数组。我需要对每列按12次顺序平均24行。我曾多次尝试通过计算平均值来使用此索引
we
,但我得到了错误的答案。我想要的结果(
meanf1
)是一个
12x13
数组,显示每列数据的12行平均值。谢谢

we = 1    25    49    73    97   121   145   169   193   217   241   265

    for ii = 1:13;
        for jj = 1:12;
            meanf1(jj,ii) = mean(m1(we(jj):we(jj)+23,ii));
        end;
    end`
这应该起作用:

for jj = 1:12    
    meanf1(jj,:) = mean(m1((floor((1:288)./24) == jj),:));    
end
另外一项。。。。 这取决于你想如何平均。。您可能还想考虑使用CEIL < /P>
meanf1(jj,:) = mean(m1((ceil((1:288)./24) == jj),:));
这应该起作用:

for jj = 1:12    
    meanf1(jj,:) = mean(m1((floor((1:288)./24) == jj),:));    
end
另外一项。。。。 这取决于你想如何平均。。您可能还想考虑使用CEIL < /P>
meanf1(jj,:) = mean(m1((ceil((1:288)./24) == jj),:));

给定由
我们
创建的规则间隔,您可以重塑,然后使用
平均值
,如下所示-

meanf1 = reshape(mean(reshape(m1(1:288,1:13),24,[]),1),12,13);

给定由
我们
创建的规则间隔,您可以重塑,然后使用
平均值
,如下所示-

meanf1 = reshape(mean(reshape(m1(1:288,1:13),24,[]),1),12,13);

这里有一些小错误。在我看来,最简单的修改版本的方法就是把jj改成你想要的“我们”的数字。此外,循环不需要使用2,因为可以使用一维作为向量。这是一个可能的解决方案,但我觉得这不是最好的

    m1=rand(288,13);

    meanf1=ones(12,13); %preallocation is always better
    i=1;
    for jj = 1:24:265 ;
        meanf1(i,:) = mean(m1(jj:jj+23,:));
        i=i+1;
    end;

这里有一些小错误。在我看来,最简单的修改版本的方法就是把jj改成你想要的“我们”的数字。此外,循环不需要使用2,因为可以使用一维作为向量。这是一个可能的解决方案,但我觉得这不是最好的

    m1=rand(288,13);

    meanf1=ones(12,13); %preallocation is always better
    i=1;
    for jj = 1:24:265 ;
        meanf1(i,:) = mean(m1(jj:jj+23,:));
        i=i+1;
    end;

我不明白你想要什么。你能给我们举一个小的数字例子吗?你能告诉我们为什么你认为你的答案是错误的吗?平均值与我手工或手工计算平均值时的平均值相比是不一致的,有时我会得到零,也就是应该有平均值的地方。我需要找出一种方法来平均24个值,然后跳到下一个24个值,取平均值,然后跳到下一个24个值,取平均值,一共做12次。在做了12次之后,我需要对下一列做同样的事情,我有13列。我需要的结果是12行13列的平均值数组。我希望这是有道理的!非常感谢。这段代码看起来不错。手动计算可能有问题吗?平均值超过24行或重复12次。然后,我需要以相同的方式在下一列中重复平均值-一次平均24行,重复12次,直到row==288,然后移动到下一列。期望的结果是12行乘以13列的平均值。谢谢我不明白你想要什么。你能给我们举一个小的数字例子吗?你能告诉我们为什么你认为你的答案是错误的吗?平均值与我手工或手工计算平均值时的平均值相比是不一致的,有时我会得到零,也就是应该有平均值的地方。我需要找出一种方法来平均24个值,然后跳到下一个24个值,取平均值,然后跳到下一个24个值,取平均值,一共做12次。在做了12次之后,我需要对下一列做同样的事情,我有13列。我需要的结果是12行13列的平均值数组。我希望这是有道理的!非常感谢。这段代码看起来不错。手动计算可能有问题吗?平均值超过24行或重复12次。然后,我需要以相同的方式在下一列中重复平均值-一次平均24行,重复12次,直到row==288,然后移动到下一列。期望的结果是12行乘以13列的平均值。谢谢