How can I add noise to linear graph
    11 ビュー (過去 30 日間)
  
       古いコメントを表示
    
I have 100 sample points and I'm using y=mx+c to create 1d line and add gaussian noise using randn the attached graph is the result that I got when I tried the first code and when I try the second code I get straight line I think there is something wrong with my plot but I'm not sure where ?
code1
  sample = 100;
    x = linspace(-5,5);
    y= 1.6 * x +6; 
    dataset = randn(sample,2); 
      figure
      plot(dataset,y) 
      axis([-8 7])
code2
sample = 100;
x = linspace(-5,5);
y= 1.6 * x +6; 
dataset = y*randn(sample,2); 
figure
plot(dataset) 
axis([-8 7]);

this is the result that I want to get

0 件のコメント
採用された回答
  jgg
      
 2016 年 1 月 21 日
        
      編集済み: jgg
      
 2016 年 1 月 21 日
  
      You never added the random noise to your dataset:
sample = 100;
  x = linspace(-5,5);
  y= 1.6 * x +6; 
  r = randn(2,sample); 
    figure
    plot(x,r(1,:)+y) 
    hold on
    plot(x,r(2,:)+y)
The actual outcome value is y + r(i,:) not just y; you also are plotting it incorrectly before.
2 件のコメント
  jgg
      
 2016 年 1 月 21 日
				Yes. Let's code it up a little more clearly since you want to fit something too:
sample = 100;
x = linspace(-5,5);
y= 1.6 * x +6; 
r = randn(2,sample);
y_noise = y + r(1,:); 
X = [ones(1,length(x)); x];
beta = regress(y_noise',X');
y_fitted = beta(1) + x*beta(2);
figure
plot(x,y_noise)
hold on 
plot(x,y_fitted)
This fits a linear regression curve to the noisy data using the regress function with an intercept. The coefficients are in beta.
If this answer solved your problem, please help others find it by accepting it.
その他の回答 (0 件)
参考
カテゴリ
				Help Center および File Exchange で Fit Postprocessing についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

