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

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

Была ли эта тема полезной?