明智的对象创建
对象的开销
图形对象是复杂的结构,存储信息(数据和对象特性),听某些事件发生(回调属性),并可能导致其他对象的变化,以适应他们的存在(更新轴限制,等等)。因此,创建一个对象消耗的资源。
当性能成为重要的考虑因素,努力实现你的目标的方式消耗最少的资源。
您通常可以通过遵循这些指南:提高性能
不创建不必要的对象
避免搜索对象层次结构
不创建不必要的对象
寻找的情况您可以创建更少的对象,实现相同的结果。例如,假设你想画一个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)
修改数据,而不是创建新对象
查看不同的数据基本上是相同的图,这是更有效的更新数据现有的对象(线条、文本等等)而不是重建整个图。
例如,假设您想在您的数据可视化效果不同的某些参数。
设置的限制任何可以提前确定的轴,或一组轴模式的限制
手册
。使用新的参数重新计算数据。
使用新的数据更新的数据属性,文本等中使用的对象图。
调用
drawnow
更新图(图中所有子对象)。
例如,假设您想更新图表数据变化:
图z =山峰;h =冲浪(z);drawnow zlim ([min (z (:)), max (z (:))));为k = 1:50 h。罪ZData =(0.01 +(2 *π* k / 20) * z);drawnow结束