Inf resulted when calculating mean
Afficher commentaires plus anciens
I am calculating the mean pe each year from 1993-2021. I have rounded my data set, drdata, to the 2 decimal place. However, the stockpe resulted in Inf for every year. I don't understand why this happens. I have already rounded it.
%drdata column 2 is date
%drdata column 4 is the pe ratio data
[year,~,~] = datevec(728110)
%storing the years in y (months and dates are not necessary)
%dates are stored in the 2nd column
[y,~,~] = datevec(drdata(:,2));
%calculating mean stock return for each year, return is in the 7th column
unique(y)
mask = y >= 1993 & y <= 2021;
nnz(mask)
nnz(isnan(drdata(mask,4)))
for k=1993:2021
stockpe(k-1992) = round(mean(drdata(y==k,4)),2);
%1st element will correspond to 1993, 2nd - 1994 and so on
end
4 commentaires
Walter Roberson
le 30 Juil 2022
unique(y)
nnz(mask)
nnz(isnan(drdata(mask,4)))
those three lines are debugging steps, not regular commands needed by working code. please tell us what the output was of those three lines.
You would get inf if no entries in y were in the range 1993 to 2021
King To Leung
le 30 Juil 2022
Walter Roberson
le 31 Juil 2022
temp = drdata(y==1993,4);
size(temp)
min(temp), max(temp)
Please show the output of these debugging commands
King To Leung
le 31 Juil 2022
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Logical dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!