В этом примере показано, как тестировать hold состояние и соответствующий ответ в пользовательских функциях печати.
Функции печати обычно изменяют различные параметры осей для размещения различных данных. myPlot3D функция:
Использует представление 2-D или 3-D в зависимости от входных данных.
Уважает текущее hold для соответствия поведению функций печати MATLAB ®.
function myPlot3D(x,y,z) % Call newplot to get the axes handle cax = newplot; % Save current hold state hold_state = ishold; % Call plotting commands to % produce custom graph if nargin == 2 line(x,y); % Change view only if hold is off if ~hold_state view(cax,2) end elseif nargin == 3 line(x,y,z); % Change view only if hold is off if ~hold_state view(cax,3) end end grid on end
Например, первый вызов myPlot3D создает график 3-D. Второй вызов myPlot3D добавляет 2-D данные в представление 3-D, поскольку hold является on.
[x,y,z] = peaks(20);
myPlot3D(x,y,z)
hold on
myPlot3D(x,y)