【Matlab-绘图小知识点】


matlab绘图时最好添加图形句柄,当我们需要擦除的时候,只需要擦除该句柄即可,而不需要擦除的图像则不需要添加图形句柄。为了提高程序性能和效率差,我们可以通过控制哪些图形需要被更新,并优化程序以适应特定的场景和需求。通过只擦除需要不断更新的图形,可以减轻matlab的计算量,从而提高程序的效率。这种方法可以在处理实时或交互性高的应用程序中非常有效,因为他只会重新计算和更新需要变化的部分,而不是重复进行固定不变的计算。

实例1

假设已经创建了一个图形并保存了它的句柄

% 创建一个简单的图形
figure;
plot([1,2,3,4], [2,4,1,3]);

% 获取图形的句柄
h = gcf; % gcf 用于获取当前图形的句柄

% 假设你想擦除这个图形
delete(h);

在这个实例中,我们首先创建了一个简单的图形,然后使用‘gcf’获取当前图形的句柄,将其保存在变量‘h’中,最后使用delete(h)将该图形擦除。

实例2

假如我们在一个函数里面包含了需要改变的绘图函数和不需要改变的绘图函数
以下实例就是不管绘图程序里面是否需要更新,当程序需要擦除的时候,matlab都将其擦除,并重新计算生成新的图像,这样子会降低matlab的效率,在无需反复绘图的事情上浪费了cpu资源。

//函数1
function pic = draw_picture(value1,value2,value3,fcla)
	scatter3(x,y,z,'filled','b');hold on;  //变化
	scatter3(1,2,3,'filled','b');hold on;  //不变
	if(fcla)
		cla;
	end
end
//main函数
for i=1:100000
	value1 = i;
	value2 = i+1;
	value3 = i+2;
	draw_picture(value1,value2,value3,1);  //擦除
end

实例3-基于实例2的基础上添加图形句柄,优化绘图程序

将所有需要擦除更新的绘图程序添加句柄,不需要改变的图形可以放到主程序前方作为场景。

function pic = draw_picture(value1,value2,value3)
	draw = [draw scatter3(x,y,z,'filled','b')]; hold on;  //变化
	delete(draw);//删除句柄,即删除图形
end
//main函数
scatter3(1,2,3,'filled','b');  //不变
for i=1:100000
	value1 = i;
	value2 = i+1;
	value3 = i+2;
	draw_picture(value1,value2,value3);
end
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值