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

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

Функции построения графика обычно изменяют различные параметры осей, чтобы хранить различные данные. myPlot3D функция:

  • Использует 2D или 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)