【发布时间】:2018-03-17 00:29:02
【问题描述】:
我有一个关于将数据复制到另一个数组的处理时间的问题。我注意到与普通的单个值相比,复制复杂的单个数据需要更多的时间。即使我预先分配了两个数组。
% Example to show different processing speed of copying data
T1=0; % total time for single
T2=0; % total time for complex single
% preallocate rrays
Csingle = single(zeros(500,3000));
Cimagsingle =complex(Csingle);
for i=1:1000;
A =rand(500,3000,'single');
B = 1i.*A;
tic ;
C = A;
t1=toc;
T1=T1+t1;
tic;
Cimag = B;
t2=toc ;
T2=T2+t2;
end
本例中的处理时间为
T1 = 0.6105
和
T2 = 1.1430
这大约是慢两倍!?
我不理解这种行为。在我正在编写以获取实时数据的程序中,我需要将复杂数据复制到一个新数组中,但处理速度很慢。结果我的程序无法实时运行。
【问题讨论】:
-
您的意思是,对于定义为具有 2 个分量 (a+bi) 的数字,填充时间是定义为 1 个分量 (a) 的数字的两倍。嗯嗯不知道为什么这会让你感到惊讶。它实际上是数据量的两倍。
标签: matlab time-complexity complex-numbers