主要内容

明智的对象创建

对象的开销

图形对象是复杂的结构,存储信息(数据和对象特性),听某些事件发生(回调属性),并可能导致其他对象的变化,以适应他们的存在(更新轴限制,等等)。因此,创建一个对象消耗的资源。

当性能成为重要的考虑因素,努力实现你的目标的方式消耗最少的资源。

您通常可以通过遵循这些指南:提高性能

  • 不创建不必要的对象

  • 避免搜索对象层次结构

不创建不必要的对象

寻找的情况您可以创建更少的对象,实现相同的结果。例如,假设你想画一个10 - - 1000的点只显示标记。

这段代码创建1000行对象:

x =兰德(1000);y =兰德(1000);情节(x, y,“线型”,“没有”,“标记”,“。”,“颜色”,“b”);

将数据从10 - - 1000到10000 - 1。这段代码创建了一个图形看起来相同,但只创建一个对象:

情节(x (:), y (:),“线型”,“没有”,“标记”,“。”,“颜色”,“b”)

使用nan模拟多个行

如果坐标数据包含nan, MATLAB®不让这些点。您可以添加nan顶点数据来创建线段看起来像单独的行。将nan在同一元素的位置在每个向量的数据。例如,这个代码似乎创建三个独立的行:

x = [0:10 NaN, 20:30,南40:50);0:10,y =[0:10,南南0:10);线(x, y)

修改数据,而不是创建新对象

查看不同的数据基本上是相同的图,这是更有效的更新数据现有的对象(线条、文本等等)而不是重建整个图。

例如,假设您想在您的数据可视化效果不同的某些参数。

  1. 设置的限制任何可以提前确定的轴,或一组轴模式的限制手册

  2. 使用新的参数重新计算数据。

  3. 使用新的数据更新的数据属性,文本等中使用的对象图。

  4. 调用drawnow更新图(图中所有子对象)。

例如,假设您想更新图表数据变化:

图z =山峰;h =冲浪(z);drawnow zlim ([min (z (:)), max (z (:))));k = 1:50 h。罪ZData =(0.01 +(2 *π* k / 20) * z);drawnow结束