Am I doing this right? (a Math formula to Matlab language)

조회 수: 6 (최근 30일)
BN
BN 2020년 2월 15일
편집: akca - 2024년 12월 26일
I needed to calculate this formula:
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.

채택된 답변

James Tursa
James Tursa 2020년 2월 15일
편집: James Tursa 2020년 2월 15일
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 );

추가 답변 (2개)

Giuseppe Inghilterra
Giuseppe Inghilterra 2020년 2월 15일
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.

akca -
akca - 2024년 12월 26일
편집: akca - 2024년 12월 26일
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

카테고리

Help CenterFile Exchange에서 Mathematics에 대해 자세히 알아보기

제품


릴리스

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by