What's the fastest way to program a matrix recursion in matlab?
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
The matrix-recursion of the n by n matrices Y_t looks like this:
<<chart-googleapis-com-chart-cht-tx-chl-Y_-t--A-20-2B-20--sum_-i-1---p--20B_-i-Y_-t-i.>>
A and B are given.
This is my attempt, but it runs slowly:
Y = zeros(n,n,T); %Going to fill the 3rd dimension for Y_t, t=1:T
Y(:,:,1:p) = initializingY
for t=(p+1):T
Y(:,:,t) = A;
for i=1:p
Y(:,:,t) = Y(:,:,t) + B(:,:,i)*Y(:,:,t-i);
end
end
Can you think of a more efficient way to do this?
0 Commenti
Risposte (1)
Mathias
il 12 Nov 2015
Use matrix product!
This code is about 10 times faster on my computer
for t=(p+1):T
Y(:,:,t) = A + sum(Y(:,:,(t-p+1):t).*B, 3);
end
Regards
2 Commenti
Walter Roberson
il 13 Nov 2015
pagefun() can be used to do matrix multiplication along the third dimension
Vedere anche
Categorie
Scopri di più su Logical in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!