Am I doing this right? (a Math formula to Matlab language)
6 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
BN
el 15 de Feb. de 2020
I needed to calculate this formula:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/271805/image.jpeg)
So I wrote a function in order to do that:
(P is x and P^ is y):
function NS = nash_sat(x, y)
% This function calculates Nash-Sutcliffe efficiency coefficient
% Detailed explanation goes here
A = sum (x-y).^2;
B = sum (x-(mean(x)).^2;
fraction = (A/B);
NS = 1-fraction;
end
This is the first time I type a math formula in Matlab. I want to know if I typed the formula in the function correctly or not.
Thank you so much.
0 comentarios
Respuesta aceptada
James Tursa
el 15 de Feb. de 2020
Editada: James Tursa
el 15 de Feb. de 2020
You are on the right track, but have typos in the code due to parentheses issues.
A = sum( (x - y).^2 );
B = sum( (x - mean(x)).^2 );
Más respuestas (2)
Giuseppe Inghilterra
el 15 de Feb. de 2020
Hi,
A and B terms are wrong.
What you wrote is the square of sum of differences. Instead formula is the sum of square of differences.
The code should be written as follow:
A = sum((x-y).^2);
B = sum((x-(mean(x))).^2);
fraction = (A/B);
NS = 1-fraction;
Pay attention also to space left between "sum" and "(x-y)" in your code: it is not correct.
0 comentarios
akca -
el 26 de Dic. de 2024
Editada: akca -
el 26 de Dic. de 2024
function NS = nash_sat1(x, y)
% This function calculates Nash-Sutcliffe efficiency coefficient
% Detailed explanation goes here
A = sum((minus(x,y)).^2);
B = sum((minus(x,(mean(x))).^2));
fraction = (A./B); %Element-Wise
NS = 1-fraction;
end
0 comentarios
Ver también
Categorías
Más información sobre Get Started with MATLAB en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!