我已经从电极网格上的记录中加载了大量数据,并希望在具有多个子图的图形上绘制每个电极的轨迹,每个电极一个子图。
for traces = 1:rows*columns;
subplot(rows,columns,traces);
baseline = mean(EX_output(1:baseline_time,traces));
plot(EX_output(1:timepoints,traces));
axis([000 timepoints baseline-60 baseline+60])
axis off
disp(traces); %print out trace completed
end有900条轨迹(30x30)。这工作并产生一个数字,但它需要很长的时间(2-3个小时)。
当它完成跟踪时,我让它打印出数字。它似乎快到300左右,但在那之后开始减速,并继续减速。如何加快绘图过程?
发布于 2017-06-29 19:10:26
如果您键入edit subplot并查看第378行,您会看到当您绘制子图时,它会检查图形的所有兄弟项。这意味着你已经拥有的子图越多,它需要检查的就越多。我认为这就是它变慢的原因。如果您调用它并显式声明父图形,则还可以通过将子图声明为new来提高速度。
f=figure(1);clf
f.NextPlot='new';
cols=20;rows=20;
tic
for idx = 1:(cols*rows)
subplot(rows,cols,idx,'Parent',f);
%subplot(rows,cols,idx);
end
toc在我的pc上,这使20x20图形的时间从10秒减少到6秒。
哦,我完全同意上面的评论。我看不到30x30子图的实际用途,因为单独的图太小了,看不到任何东西。
https://stackoverflow.com/questions/44820243
复制相似问题