作者DIDIMIN ( )
看板MATLAB
标题[讨论] 如何更有效率?
时间Sat Sep 7 11:36:34 2013
已知有一行向量 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