exponenta event banner

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

В этом примере показано, как тестировать 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)