我需要編寫單位階躍函數在Matlab: 功能實現在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的每個值,並將評估結果放在數組中。 預先感謝
我需要編寫單位階躍函數在Matlab: 功能實現在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的每個值,並將評估結果放在數組中。 預先感謝
可以在一個代碼行做到這一點:
n>=0
聲明上面會產生具有等於單位元件的邏輯數組,如果n的相應元素是嚴格大於零。如果你需要一個功能,它的控制器,可以使用匿名函數:
u = @(n) n>=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
有這個除了邁克爾的回答一個內置'heaviside'功能。 – David
我知道,但它在t = 0時返回1/2。我在t = 0時需要1 – etf
然後'ceil(heaviside(n))'! – David