Problem with a function

1 vue (au cours des 30 derniers jours)
Julian Wzorek
Julian Wzorek le 11 Nov 2020
Commenté : Julian Wzorek le 11 Nov 2020
Hi, I would like to creat a function that calculate fn. I would like to assign 1 to s when x>v and 0 otherwise.
[fn]=lillietest1(daily_logreturns);
function [fn] = lillietest1(x)
n=lenght(x);
x=sort(x);
for i=1:n
v(i)=i/n;
if x(i)>=v(i)
s(i)=1;
else
s(i)=0;
end
end
fn=sum(s)/n;
end

Réponse acceptée

Alan Stevens
Alan Stevens le 11 Nov 2020
I don't have your daily log returns vector, so I can't check your result. You are the only person who can decide if the function makes sense!!
  5 commentaires
Alan Stevens
Alan Stevens le 11 Nov 2020
Modifié(e) : Alan Stevens le 11 Nov 2020
I've just done that and the value of 0 is correct for daily_logreturns, as you can see by the graph plotted by the modified code below. However, if you look at daily_prices instead, the value returned is 0.7305.
load daily_logreturns
[fn,c]=lillietest1(daily_logreturns);
% [fn,c]=lillietest1(daily_prices);
disp(fn)
plot(c(:,1),c(:,2),c(:,1),c(:,1))
xlabel('x'),ylabel('v'),grid
legend('v vs x','x vs x')
function [fn,c] = lillietest1(x)
n=length(x);
x=sort(x);
s = zeros(n,1);
v = zeros(n,1);
for i=1:n
v(i)=i/n;
if x(i)>=v(i)
s(i)=1;
else
s(i)=0;
end
end
fn=sum(s)/n;
c = [x v];
end
Julian Wzorek
Julian Wzorek le 11 Nov 2020
danke schön! :)

Connectez-vous pour commenter.

Plus de réponses (1)

Alan Stevens
Alan Stevens le 11 Nov 2020
Try changing
n=lenght(x);
to
n=length(x);
(Notice the spelling).
  4 commentaires
Julian Wzorek
Julian Wzorek le 11 Nov 2020
Modifié(e) : Julian Wzorek le 11 Nov 2020
Hmm, it works but the fn is 0 and don't think this is right
Julian Wzorek
Julian Wzorek le 11 Nov 2020
Does this function make even sense?

Connectez-vous pour commenter.

Catégories

En savoir plus sur Programming dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by