Strange issue with mean, max, and min of vector?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
FsC
am 17 Jun. 2024
Kommentiert: Star Strider
am 18 Jun. 2024
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 Kommentare
Akzeptierte Antwort
Star Strider
am 18 Jun. 2024
Bearbeitet: Star Strider
am 18 Jun. 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 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Time Series Events finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!