Strange issue with mean, max, and min of vector?
조회 수: 3 (최근 30일)
이전 댓글 표시
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
채택된 답변
Star Strider
2024년 6월 18일
편집: Star Strider
2024년 6월 18일
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
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Time Series Events에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!