1

MATLABで次の式を使用して、いくつかの開始値から配列を生成しようとしています。

y t = a 0 + ∑ <sub> i = 1 p (ai⋅yt -i 、t≥p

pは、 T(最大t)と比較して小さい数です。私はこれを2forサイクルで作ることができましたが、本当に遅いです。それを行う簡単な方法はありますか?

yの最初のp値が提供され、ベクトルa(長さはp + 1)も提供されます。

これは私がこれまでに持っていたものですが、今試したところ、100%は機能しません(MATLABの1からのインデックス作成が原因だと思います):

y1 = zeros(T+1, 1);
y1(1:p) = y(1:p);

for t = p+1:T+1
    value = a1(1);
    for j = 2:p+1
        value = value + a1(j)*y1(t-j+1);
    end
    y1(t) = value;
end

編集:私はそれを解決しました、私は1からのMatlabインデックス作成に慣れていません...

4

2 に答える 2

1
y1 = zeros(T+1, 1);
y1(1:p) = y(1:p);

for t = p+1:T+1
    value = a1(1);
    for j = 2:p+1
        value = value + a1(j)*y1(t-j+1);
    end
    y1(t) = value;
end
于 2012-10-20T09:16:24.903 に答える