2011-11-10 10 views
6

¿Es posible sobrecargar una función en una clase de Matlab que haya creado?posible sobrecargar la función en la clase matlab?

como la siguiente:

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

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

Desafortunadamente cuando intento esto, me sale un error redefinición

+0

relacionadas: http://stackoverflow.com/questions/8630889/overloading-functions/8631335#8631335 –

Respuesta

9

Si crea la función con la última, entonces usted puede pasar sólo un único parámetro que se ser interpretado como el primero. Si desea que los valores por defecto, entonces se puede hacer algo como esto:

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

a-ha, ahí vamos. Necesité el nargin para hacer que esto funcione. ¡Gracias un montón! Cuando me permita aceptar tu respuesta, lo haré. – gnychis

Cuestiones relacionadas