В MATLAB, как очистить последнюю вещь, построенную на рисунке?

в MATLAB я строю много разных векторов для фигуры. Теперь, что я хотел бы сделать, это просто отменить последние вектор, который я построил для этой цифры, не очищая все остальное. Как этого можно достичь? Можно ли это сделать?

спасибо

изменить:

figure(1); clf(1);
N = 100;
x = randn(1,N);
y = randn(1,N);
z = sin(1:N);
plot(x); hold on;
plot(y,'r');
plot(z,'k'); 

теперь здесь я хотел бы удалить сюжет z, который был последним сюжетом, который я сделал.

3 ответов


Если вы знаете, перед построением, что вы хотите удалить его позже, вы можете сохранить дескриптор, возвращенный plot и delete это потом.

figure;
h1 = plot([0 1 2], [3 4 5]);
delete(h1);

попробовать

items = get(gca, 'Children');
delete(items(end));

(или delete(items(1)))


ответ, который дает @groovingandi, - лучший способ сделать это. Вы также можете использовать метод findAll чтобы найти дескриптор на основе свойств объекта:

h = findall(gca, 'type', 'line', 'color', 'k');
delete(h);

это поиск текущих осей для всех линейных объектов (график создает линейные объекты), которые окрашены в черный цвет.

чтобы сделать это, скажем, на рисунке 9, вам нужно найти оси для рисунка 9. Рисунок ручки просто цифру, так:

ax = findall(9, 'axes');
h = findall(ax, 'type', 'line', 'color', 'k');
delete(h);