You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MATLAB迭代动态绘图时隐藏历史折线保留固定散点的修改方法

解决方法

核心思路

  • 不能直接用cla/clf清空整张画布,会把需要保留的蓝色散点一同删除
  • 单独存储每次生成的黑色折线的图形句柄,每次迭代前仅删除上一轮的折线对象即可

修改后的完整代码

N = 50;
L = 20;
itr = 5;
N_x = (rand(N,1)-0.5)*L;
N_y = (rand(N,1)-0.5)*L;
plot(N_x,N_y,'Ob','MarkerSize',10);
grid on;
hold on;
axis([-0.5*L 0.5*L -0.5*L 0.5*L]);
line_hdl = []; % 新增:存储黑色折线的图形句柄
for n = 1:itr
    if ~isempty(line_hdl)
        delete(line_hdl); % 新增:删除上一轮生成的黑色折线
    end
    out = randperm(N,5);
    plot_x = N_x(out);
    plot_y = N_y(out);
    line_hdl = plot(plot_x,plot_y,'-k'); % 修改:保存当前折线的句柄
    pause(1);
end

关键改动说明

  • 循环外新增空变量line_hdl,专门用来存储上一轮黑色折线的图形句柄
  • 每次进入循环先判断line_hdl是否存在,存在则调用delete()仅删除上一轮的折线,不会影响蓝色散点
  • 绘制当前轮次折线时,将返回的句柄赋值给line_hdl,供下一轮迭代删除使用
  • 移除了循环内冗余的hold on语句,外层已经开启hold on无需重复执行

内容的提问来源于stack exchange,提问作者Frey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 11:45:05