Is there any other way than manually updating the noise parameter such that the algorithm re runs for every parameter and then plots the graph ?
    4 views (last 30 days)
  
       Show older comments
    
I have the following code where the noise parameter changes in an interval of 0.01.I want to plot the graph without manually re-entering all the data.x axis will be 0.01-0.10 and y axis will be RMSE
    V_test=imnoise(V_test,'gaussian', *0.01*);%changing 0.01 till 0.10 
V_test = V_test - mean(V_test(:));
V_test = V_test / sqrt(mean(V_test(:).^2));
V_test = V_test + 0.25;
V_test = V_test * 0.25;
V_test = min(V_test,1);
V_test = max(V_test,0);
H_test=abs(randn(49,472)); %multiplicative step H_test = H_test.*(W_test'*V_test)./(W_test'*W_test*H_test + 1e-9); error=sum((V_test- W_test*H_test).^2)/(sum(V_test).^2); % Errors RMSE = sqrt(error);%store this value
2 Comments
Accepted Answer
  Stephen23
      
      
 on 30 Nov 2017
        
      Edited: Stephen23
      
      
 on 12 Dec 2017
  
      Use a loop:
vec = 0.01:0.01:0.10; % or whatever step size you need.
out = nan(size(vec));
for k = 1:numel(vec)
    V_test = imnoise(V_test,'gaussian', vec(k));
    ... the rest of your code
    out(k) = sqrt(...);
end
2 Comments
  Stephen23
      
      
 on 12 Dec 2017
				@kitty Varghese: Why do you think that my answer needs : ? On each iteration you need to provide one value from vec, as my answer shows.
More Answers (0)
See Also
Categories
				Find more on Graphics Performance in Help Center and File Exchange
			
	Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
