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 ?

2 visualizaciones (últimos 30 días)
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

Respuesta aceptada

Stephen23
Stephen23 el 30 de Nov. de 2017
Editada: Stephen23 el 12 de Dic. de 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 comentarios
kitty varghese
kitty varghese el 12 de Dic. de 2017
U missed ":" in your code i.e V_test = imnoise(V_test,'gaussian', : ) also, when I do this change I'm getting error msg "Undefined function or variable 'imnoise'"
Stephen23
Stephen23 el 12 de Dic. de 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.

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by