Strange issue with mean, max, and min of vector?
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
FsC
el 17 de Jun. de 2024
Comentada: Star Strider
el 18 de Jun. de 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 comentarios
Respuesta aceptada
Star Strider
el 18 de Jun. de 2024
Editada: Star Strider
el 18 de Jun. de 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 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Time Series Events en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!