How to quickly fill in a matrix
이전 댓글 표시
Hi there,
Does anybody have a "fix" on how to make this function go faster? Essentially, I am trying to fill up the matrix Hpsi using the vector phi in a special way.
Thanks in advance, Andy.
T= 1000;
phi=[1:10];
Hpsi = speye(T);
phi=phi';
pl=length(phi);
for i=1:pl
Hpsi = Hpsi + sparse((i+1):T,1:(T-i),phi(i)*ones(1,T-i),T,T);
end
답변 (1개)
Christine Tobler
2015년 12월 17일
Use spdiags:
spdiags(repmat(phi([end:-1:1 1])', T), -10:0, T, T)
댓글 수: 2
akkp
2015년 12월 18일
Christine Tobler
2015년 12월 18일
Sorry, I forgot an input:
spdiags(repmat(phi([end:-1:1 1])', T, 1), -10:0, T, T)
카테고리
도움말 센터 및 File Exchange에서 Deep Learning Toolbox에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!