Strange issue with mean, max, and min of vector?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello,
I am having an issue with finding the mean max and min of a vector (attached). All values in the vector are positive (increments of time) and less than 1. However, when I test the mean() = -8.0219, max = 9.5770, min = -4.3200e+04. When I try to find() the indices of the min and max, it says that it is 1 but, the value at index 1 is 0.012.
When you test the vector, do you get the same result? Why is it outputting these incorrect values?
0 commentaires
Réponse acceptée
Star Strider
le 18 Juin 2024
Modifié(e) : Star Strider
le 18 Juin 2024
See the plotted values —
load('diffT.mat')
whos('-file','diffT')
% diffT
neg_vals = nnz(diffT < 0)
[lo,hi] = bounds(diffT)
diffT_median = median(diffT)
diffT_mean = mean(diffT)
figure
plot(diffT)
grid
xlabel('Index')
ylabel('diffT (Everything)')
figure
plot(diffT)
grid
xlabel('Index')
ylabel('diffT (Bounded)')
ylim([min(diffT(1:1000)) max(diffT(1:2000))])
diffT_out = filloutliers(diffT,'nearest'); % Detect & Fill The Outlier
[lo,hi] = bounds(diffT_out)
median_diffT_out = median(diffT_out)
mean_diffT_out = mean(diffT_out)
stdev_diffT_out = std(diffT_out)
figure
plot(diffT_out)
grid
xlabel('Index')
ylabel('diffT\_out')
figure
histfit(diffT_out, 100, 'lognormal')
grid
Your statement ‘All values in the vector are positive’ seems not to be the actual situation. There is one value that is equal to -43200, and that sort of spoils the party. You might want to see how that large negative value managed to get in your ‘diffT’ data.
When in doubt, plot the data!
EDIT — Corrected typographical errors.
.
2 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Time Series Events dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!