Arrays 如何在Matlab中以广播方式计算子阵列的平均值?

Arrays 如何在Matlab中以广播方式计算子阵列的平均值?,arrays,performance,matlab,vectorization,broadcast,Arrays,Performance,Matlab,Vectorization,Broadcast,目前我是这样做的, a = rand(1e6,1); n = 5; m = 0; for ii = 1 : n m = m + a(ii:n:end); end m = m/n; 我能用广播的方式使它更简洁和有效吗?假设a的长度是n的倍数,你可以简单地用n行将a重塑为2D矩阵,并沿第一维求平均值,就像这样- m = mean(reshape(a,n,[]),1) 假设a的长度是n的倍数,您可以简单地将a重塑为2D矩阵,使用n行,并沿第一维度找到平均值/平均值,如下所示- m =

目前我是这样做的,

a = rand(1e6,1);

n = 5;

m = 0;

for ii = 1 : n
   m = m + a(ii:n:end);
end

m = m/n;

我能用广播的方式使它更简洁和有效吗?

假设
a
的长度是
n
的倍数,你可以简单地用
n
行将
a
重塑为
2D
矩阵,并沿第一维求平均值,就像这样-

m = mean(reshape(a,n,[]),1)

假设
a
的长度是
n
的倍数,您可以简单地将
a
重塑为
2D
矩阵,使用
n
行,并沿第一维度找到平均值/平均值,如下所示-

m = mean(reshape(a,n,[]),1)

请解释你想做什么。“你到底想用什么子阵列?”丹,我有一个金发女郎的时刻。这个问题看起来很幼稚和简单。请解释一下你想做什么。“你到底想用什么子阵列?”丹,我有一个金发女郎的时刻。这个问题看起来很幼稚和简单。@Dr.Lee别弄丢了,你会需要它的@李博士别丢了,你会需要的!