(Это не совсем ответ, но больше, чем я могу уместить в комментарии.)
Я с gnovice об этой, скорее всего, проблеме или о том, что вы как-то перегрузили команду mode
. Попробуйте which mode
, clear mode
или просто перезапустите Matlab.
Я не могу воспроизвести, как показано ниже:
>> sample =[...
0.4375 0.3750 0.5313 0.4375 0.8750 0.3750 ...
0.5313 0.6563 0.3750 0.4375 0.5313 ...
0.5313 0.8438 0.8438 0.4375 0.5313 0.5313 ...
0.5313 0.4375 0.3750 0.4375 0.3750 ...
0.3750 0.5313 0.3750 0.8750 0.5313 0.8438 ...
0.4375 0.0313 0.3750 0.8438 0.8438 ...
0.3750 0.8750 0.8750 0.5313 0.4375 0.8750 ...
1.7813 0.3750 0.8750 0.3750 0.3750 ...
0.3750 0.4375 0.3750 0.3750 0.8750 0.3750];
>> mode(sample)
ans =
0.375
Если я добавлю небольшие случайные числа, я могу изменить ответ ... но не устанавливать его на ноль.
>> format short g
>> sample = sample .* (1+100*eps*randn(size(sample)))
sample =
Columns 1 through 11
0.4375 0.375 0.5313 0.4375 0.875 0.375 0.5313 0.6563 0.375 0.4375 0.5313
Columns 12 through 22
0.5313 0.8438 0.8438 0.4375 0.5313 0.5313 0.5313 0.4375 0.375 0.4375 0.375
Columns 23 through 33
0.375 0.5313 0.375 0.875 0.5313 0.8438 0.4375 0.0313 0.375 0.8438 0.8438
Columns 34 through 44
0.375 0.875 0.875 0.5313 0.4375 0.875 1.7813 0.375 0.875 0.375 0.375
Columns 45 through 50
0.375 0.4375 0.375 0.375 0.875 0.375
>> mode(sample)
ans =
0.0313
Похоже, вы где-то посередине, так как ваш length(unique(sample))
вернул 12. Для справки я получаю
>> length(unique(sample)) %After the initial setup above
ans =
8
>> length(unique(sample)) %After adding small random perturbations
ans =
50