在Matlab中如何以广播方式计算子数组的均值?
How do I calculate the mean of subarrays in the broadcast way in Matlab?
目前我是这样做的,
a = rand(1e6,1);
n = 5;
m = 0;
for ii = 1 : n
m = m + a(ii:n:end);
end
m = m/n;
广播的方式能不能更简洁高效?
假设 a
的长度是 n
的倍数,您可以简单地将 a
重塑为具有 n
行的 2D
矩阵,并且沿着第一个维度找到 average/mean,像这样 -
m = mean(reshape(a,n,[]),1)
目前我是这样做的,
a = rand(1e6,1);
n = 5;
m = 0;
for ii = 1 : n
m = m + a(ii:n:end);
end
m = m/n;
广播的方式能不能更简洁高效?
假设 a
的长度是 n
的倍数,您可以简单地将 a
重塑为具有 n
行的 2D
矩阵,并且沿着第一个维度找到 average/mean,像这样 -
m = mean(reshape(a,n,[]),1)