2011-11-10 32 views
6

Có thể quá tải một hàm trong lớp Matlab mà bạn đã tạo không?có thể quá tải chức năng trong lớp MATLAB?

Giống như sau:

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

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

Thật không may khi tôi cố gắng này, tôi nhận được một lỗi định nghĩa lại

+0

liên quan: http://stackoverflow.com/questions/8630889/overloading-functions/8631335#8631335 –

Trả lời

9

Nếu bạn tạo các chức năng sử dụng sau này, sau đó bạn có thể vượt qua nó chỉ là một tham số duy nhất mà sẽ được hiểu là người đầu tiên. Nếu bạn muốn các giá trị mặc định, sau đó bạn có thể làm một cái gì đó như thế này:

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

a-ha, có chúng tôi đi. .. Tôi cần nargin để thực hiện công việc này. Cảm ơn nhiều! Khi nó cho phép tôi chấp nhận câu trả lời của bạn, tôi sẽ. – gnychis

Các vấn đề liên quan