Как перегрузить пользовательские функции в Matlab? - PullRequest
7 голосов
/ 28 августа 2011

Я пытаюсь построить последовательность, я написал функцию

function show_seq(seq)
 plot (seq)
end

Теперь я хочу перегрузить этот show_seq, чтобы показать 2 последовательности, например,

function show_seq(seq1, seq2)
  plot(seq1,'color','r');
  plot(seq2, 'color', 'b');
end

, но это неработает, у кого-нибудь есть идеи по поводу перегрузки функций в MATLAB?

1 Ответ

10 голосов
/ 28 августа 2011

Вы можете перегрузить одну из своих собственных функций, если поместите функцию перегрузки в путь с более высоким приоритетом. Подробнее о приоритете пути см. этот вопрос .

Однако в вашем случае проще всего будет изменить show_seq так, чтобы он принимал несколько необязательных входов:

function show_seq(varargin)
  hold on %# make sure subsequent plots don't overwrite the figure
  colors = 'rb'; %# define more colors here, 
                 %# or use distingushable_colors from the
                 %# file exchange, if you want to plot more than two

  %# loop through the inputs and plot
  for iArg = 1:nargin
      plot(varargin{iArg},'color',colors(iArg));
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...