早上好,
我对循环有疑问。我认为这很简单,但我不知道怎么做。我将尝试简化问题。
x= [... ; 106; 112; 111]
param= [1.2 ; 1.5; 1.7]
我需要做的是以下内容。通过执行以下操作创建三个新值:
第一圈:
> y(k) = a1*x(k-1) - a2*x(k-2) - a3*x(k-3)
> y(k) = (1.2*111)+(1.5*112)+( 1.7*106) =
> y(K) = 481, 4 result of the new value
第二次循环:
x= [... ; 106; 112; 111; 481,4] % this is the new added value to the vector:
y(k) = a1*x(k-1) - a2*x(k-2) - a3*x(k-3)
y(k) = (1.2*481,4)+(1.5 *111)+( 1.7*112) =
y(K) = result of the 2 new value
例程包括始终使用参数值'按顺序'并使用倒数第二个值乘以x向量,然后是倒数第二个和以下。我不知道如何管理它,因为它必须创造三个新的时间。
任何建议将不胜感激! :)提前致谢
答案 0 :(得分:0)
您只能使用y
(或x
),因为您只需在y
的末尾添加所有x
。以下是添加其他N
值的简单解决方案:
N = 103;
y = zeros(N,1);
y(1:3) = [106 112 111]; % this is the end of your x
param = [1.2 ; 1.5; 1.7];
for k = 4:N
y(k) = (param(1).*y(k-1))+(param(2).*y(k-2))+(param(3).*y(k-3));
end