2015-04-12 84 views
2

我需要編寫單位階躍函數在Matlab: enter image description here功能實現在Matlab

這裏是我怎樣努力去實現它:

function y = u(n) 
    if n<0 
     y=0; 
    else y=1; 
end 

我測試了它的參數的不同值,並將其返回正確的值,但如果我定義數組數組n = [ - 2,-1,0,1,2]並且調用test = u(n),它只返回值1.我應該怎麼做才能使它返回數組,我的意思是函數應評估n的每個值,並將評估結果放在數組中。 預先感謝

+1

有這個除了邁克爾的回答一個內置'heaviside'功能。 – David

+0

我知道,但它在t = 0時返回1/2。我在t = 0時需要1 – etf

+0

然後'ceil(heaviside(n))'! – David

回答

7

可以在一個代碼行做到這一點:

n>=0 

聲明上面會產生具有等於單位元件的邏輯數組,如果n的相應元素是嚴格大於零。如果你需要一個功能,它的控制器,可以使用匿名函數:

u = @(n) n>=0 
0

這是我如何解決它:

 function y = u(n) 
    matrix_dimensions=size(n); 
    length_of_vector=matrix_dimensions(2); 
    position=0; 
    for index=1:length_of_vector 
    position=position+1; 
    if n(1,index)<0 
    y(position)=0; 
    else y(position)=1; 
    end 
    end 
    end