2012-10-19 87 views
1

我試圖產生從使用此公式在MATLAB一些起始值的陣列的卷積:計算兩個陣列的在MATLAB

ý =一個 +Σ I = 1p(一個⋅ý TI),叔≥p

p是與T(最大t)相比的一些小數字。我已經能夠使用兩個for週期,但它確實很慢。有一些簡單的方法可以做到嗎?提供和

首先pŸ值向量一個(其長度爲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的索引.. 。

+0

向我們展示您到目前爲止所擁有的。編輯你所擁有的東西要比爲你編寫它容易得多。 –

+1

RE乳膠。不要嘗試這麼做--http://meta.stackexchange.com/questions/30559/latex-in-stack-overflow/60020#60020 – learnvst

+0

告訴我們你的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

本聲明

if(p>=t) 

看起來很奇怪的循環,其索引表達式是

for t = p+1:T+1 

這似乎保證t>p爲循環的整個持續時間內。那是你的意思寫的嗎?

編輯迴應置評

裏面這個說法

for j = 2:p 

索引的循環如何引用您對a(j)不斷呼籲a(0)

+0

對不起,我的意思是不同的,代碼中有錯誤(現在糾正) - 你是絕對正確的 – Smajl