MATLAB:向量,顺序元素和兰特

时间:2014-11-14 00:36:42

标签: matlab vector moving-average

此问题来自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=100m=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)

1 个答案:

答案 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

这就是你需要改变的一切!