В 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);
ответ, который дает @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);