我正在从串行设备读取数据,单个fscanf返回1行数据,大约需要0.02到0.05秒才能得到。这将是for循环,因为我需要阅读几千行,所以这将需要将近一分钟。
for ii = 1:n % n is number of lines to read
tic
data_set(1, ii) = fscanf(serial1);
toc
end
是否有更快的方法从串口设备读取数据,因为对于我来说,几千行的分钟太慢了。
在上面的例子中,由tic toc定时的单个fscanf在0.02到0.05秒之间。当我阅读大约2000行时,可能需要将近一分钟。
答案 0 :(得分:0)
不确定这是否会更快:
data_set = zeros(1, n);
for ii = 1:n
data_set(1, ii) = str2num(fscanf(serial1))*[1 1i].';
end
请注意,即使有标题或尾随空格,str2num
仍然有效。