简单的Matlab循环创建

时间:2017-02-10 07:26:51

标签: matlab loops

早上好,

我对循环有疑问。我认为这很简单,但我不知道怎么做。我将尝试简化问题。

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向量,然后是倒数第二个和以下。我不知道如何管理它,因为它必须创造三个新的时间。

任何建议将不胜感激! :)提前致谢

1 个答案:

答案 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
相关问题