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

1 回表示 (過去 30 日間)
BN
BN 2020 年 2 月 15 日
回答済み: Giuseppe Inghilterra 2020 年 2 月 15 日
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 );
  1 件のコメント
BN
BN 2020 年 2 月 15 日
Thank you so much

サインインしてコメントする。

その他の回答 (1 件)

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.

カテゴリ

Help Center および File ExchangeGet Started with MATLAB についてさらに検索

製品


リリース

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by