Re: [問題] 請問要怎麼add random noise已回收
※ 引述《ITACHI0105 (真相只有一個)》之銘言:
: 不好意思,小弟跟MATLAB實在不太熟
: 想請問一下如果有向量x跟y的話
: 如果我的x = 0: 0.5: 10
: y = 2.3x - 1.2
: 該怎麼add random (normal, Gaussian) noise to the vector y.
: 研究了好久還是錯
: 想說是不是 n = gaussmf(x, y); 但也是錯的
: 真的不曉得該怎麼做
: 身邊也沒有懂matlab的朋友
: 所以來問看看...看有沒有人可以提點小弟一下的- -
: 先感謝了~
你要在應變數y中加入noise,其實很簡單,以下給你其中一種方法以及建議
你可以參考看看我以下的思緒
你的自變數是
x = 0 : 0.5 : 10 ;
代入你的函數得到應變數y(函數值)
y = 2.3*x - 1.2 ;
假設你要加入的noise為n,所以
y_noise = y + n
在此n有各種形式,看你的需求而定
我這邊假設n是隨機產生的
且為常態分布(mean zero and standard deviation one)
因此可以使用 randn 函式
在這邊假設noise的大小不會大於應變數y
所以可以寫成( 記得要使用 .* )
n = y .* randn(size(y))
但由於通常noise大小不會太大,因此可以在上式中乘上一個比率s
n = s * y .* randn(size(y)) ;
在此建議s可使用0.1以下的是數值,在此使用0.1為例
所以加入noise後的y可以使用下式
y_noise = y + 0.1 * y .* randn(size(y)) ;
希望能回答到你的問題,謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.192.219.59
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):