首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么MATLAB在绘制大量子图时速度会变慢?

为什么MATLAB在绘制大量子图时速度会变慢?
EN

Stack Overflow用户
提问于 2017-06-29 16:41:42
回答 1查看 640关注 0票数 0

我已经从电极网格上的记录中加载了大量数据,并希望在具有多个子图的图形上绘制每个电极的轨迹,每个电极一个子图。

代码语言:javascript
复制
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左右,但在那之后开始减速,并继续减速。如何加快绘图过程?

EN

回答 1

Stack Overflow用户

发布于 2017-06-29 19:10:26

如果您键入edit subplot并查看第378行,您会看到当您绘制子图时,它会检查图形的所有兄弟项。这意味着你已经拥有的子图越多,它需要检查的就越多。我认为这就是它变慢的原因。如果您调用它并显式声明父图形,则还可以通过将子图声明为new来提高速度。

代码语言:javascript
复制
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子图的实际用途,因为单独的图太小了,看不到任何东西。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44820243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档