можно перегрузить функцию в классе Matlab? - PullRequest
7 голосов
/ 11 ноября 2011

Возможно ли перегрузить функцию в созданном вами классе Matlab?

Например:

    function [ sigma_nc ] = sustained_interference( N )
       sustained_interference( N, N.center_freq);
    end

    function [ sigma_nc ] = sustained_interference( N, center_freq )
       ...
    end

К сожалению, когда я пытаюсь это сделать, я получаю ошибку переопределения

1 Ответ

9 голосов
/ 11 ноября 2011

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

function [ sigma_nc ] = sustained_interference( N, center_freq )
   if nargin < 2
       center_freq = N.center_freq;
   end
   ...
end
...