Ответ на состояние удержания

В этом примере показано, как протестировать hold состояние и соответствующий ответ в пользовательских функциях построения графика.

Функции построения графика обычно изменяют различные параметры осей, чтобы включать различные данные. The 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 добавляет 2D данные к представлению 3-D, потому что hold является on.

[x,y,z] = peaks(20);
myPlot3D(x,y,z)
hold on
myPlot3D(x,y)