[討論] 如何更有效率?
已知有一行向量 X = [a, b, c, d]'
想要生成
Y = [ a, 0, 0, 0 ]
[ b, a, 0, 0 ]
[ c, b, a, 0 ]
[ d, c, b, a ] 4x4 矩陣
目前的寫法
tic
X = [1:n]';
i = 1; Y = zeros(numel(X),numel(X));
while i <= numel(X)
Y(:,i) = [zeros(i-1,1);X(1:numel(X)+1-i,1)];
i = i+1;
end
toc
當 n 為 1000 時,計算時間為 0.008490 秒
當 n 為 5000 時,計算時間為 0.147806 秒
當 n 為 10000 時,計算時間為 0.462627 秒
當 n 為 20000 時,計算時間為 1.777377 秒
電腦配備:i7-2600 3.4GHz、RAM 8G、Windows 8、Matlab R2013a
請問各位大大有沒有更有效率的寫法?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.119.119.249
討論串 (同標題文章)