2016-02-11 10 views
0

有沒有辦法在matlab 2014b中將heaviside函數的值更改爲零?因爲我從0.5的值更改爲1在原點更改Heaviside函數

+1

你可以做你自己,如果你改變那麼它是不是真正的Heaviside函數了... – excaza

+0

在文獻中heaviside(0)= 1的值用於連續函數。因爲我的功能是連續的,我想使用一個作爲heaviside(0) –

+0

即使如此,只是讓自己的... – excaza

回答

1

可以使用'HeavisideAtOrigin'偏好sympref在原點設置自定義值:

sympref('HeavisideAtOrigin',1); 
one = heaviside(-1:1) 
sympref('HeavisideAtOrigin',0.5); 
pointFive= heaviside(-1:1) 

... 

one = 

    0  1  1 


pointFive = 

     0 0.5000 1.0000 

以上是introduced in R2015a。對於預R2015a,你就必須建立自己的此修復程序,如:實際上

% heavisideOrigin1.m 
function y = heavisideOrigin1(x) 
    y = round(heaviside(x)); 
end 

% ... 
y = heavisideOrigin1(-1:1) 

% prints 
y = 

    0  1  1 
+0

這是不可能在matlab 2014b –

+0

我的壞,沒有意識到這是[只在R2015a](http://se.mathworks.com/products/symbolic/whatsnew.html)引入。我會更新2015年之前的自定義修復程序。 – dfri

+0

那麼,有沒有解決方案? –