假设已经创建了一个图形并保存了它的句柄
% 创建一个简单的图形
figure;
plot([1,2,3,4], [2,4,1,3]);
% 获取图形的句柄
h = gcf; % gcf 用于获取当前图形的句柄
% 假设你想擦除这个图形
delete(h);
在这个实例中,我们首先创建了一个简单的图形,然后使用‘gcf’获取当前图形的句柄,将其保存在变量‘h’中,最后使用delete(h)将该图形擦除。
假如我们在一个函数里面包含了需要改变的绘图函数和不需要改变的绘图函数
以下实例就是不管绘图程序里面是否需要更新,当程序需要擦除的时候,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
将所有需要擦除更新的绘图程序添加句柄,不需要改变的图形可以放到主程序前方作为场景。
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