此问题来自chegg.com。
给定N个元素的向量a a_ {n},n = 1,2,...,N,该向量的m个连续元素的简单移动平均值定义为
mu(j) = mu(j-1) + (a(m+j-1)-a(j-1))/m for j = 2,3,...,(N-m+1)
,其中
mu(1) = sum(a(k))/m for k = 1,2,...,m
编写一个脚本,在a
给出a=5*(1+rand(N,1))
时计算这些移动平均线,其中rand
生成均匀分布的随机数。假设N=100
和m=6
。使用plot(j,mu(j))
为j=1,2,...,N-m+1
绘制结果。
我目前的代码如下,但我不知道从哪里开始,或者它是否正确。
close all
clear all
clc
N = 100;
m = 6;
a = 5*(1+rand(N,1));
mu = zeros(N-m+1,1);
mu(1) = sum(a(1:m));
for j=2
mu(j) = mu(j-1) + (a-a)/m
end
plot(1:N-m+1,mu)
答案 0 :(得分:0)
我将引导您完成修改。
首先,mu(1)
尚未完全定义。给出的等式略有不正确,但这应该是:
mu(1) = sum(a(1:m))/m;
然后for
循环必须从j=2
转到j=N-m+1
for j=2:N-m+1
并且在每个步骤中,mu(j)
由此公式给出,与问题中给出的相同
mu(j) = mu(j-1) + (a(m+j-1)-a(j-1))/m
这就是你需要改变的一切!