#matlab #histogram
#matlab #гистограмма
Вопрос:
У меня есть два вектора, которые описывают гистограмму: значения / метки ячеек и количество ячеек. Я хотел бы импортировать их в объект гистограммы Matlab, чтобы я мог легче изменять параметры, такие как количество ячеек. Вот упрощение, которое у меня есть: значения центральной ячейки:
BinValues(1:21) = [-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10];
и подсчитывать значения для каждой ячейки
CountValues(1:21) = [ 16 12 3 21 7 8 2 6 0 3 4 6 1 8 3 25 16 5 7 10 16];
Моя фактическая гистограмма имеет 800000 ячеек, и я хочу изменить количество ячеек.
В моем упрощенном примере выше это было бы что-то вроде уменьшения ячеек с 21 до 15 или с 21 до 11.
То, что у меня есть, можно отобразить в виде простой гистограммы.
bar(BinValues,CountValues);
Но, если я хочу поэкспериментировать с разным количеством ячеек, я думаю, было бы лучше использовать функцию / объект гистограммы в Matlab, но я не уверен, как я это делаю из того, что у меня есть.
OK Обновить:
Я попробовал это:
h=histogram('BinEdges',[-10.5:10.5] , 'BinCounts', CountValues);
Теперь у меня есть хорошая гистограмма, но если я использую fewerbins (h), я получаю сообщение об ошибке, в котором говорится, что я не могу этого сделать, пока BinCountsMode находится в «ручном режиме». Если я изменю его, чтобы он находился в режиме «auto», моя исходная гистограмма исчезнет.
Решением грубой силы было бы сгенерировать огромный массив с повторяющимися значениями, продиктованными значениями binCount, но это кажется глупым способом решения этой проблемы.
Комментарии:
1. Собираетесь ли вы повторно объединять данные?
2. Вероятно, это не тот метод, который вам нужен, но если ячейки имеют равные интервалы (края ячеек имеют одинаковое расстояние), тогда вы могли
reshape()
CountValues
бы использовать и использоватьsum()
второе измерение. Факторreshape()
, на который следует обратить внимание, был бы почти как фактор децимации. Извините за ручной подход. Единственное предостережение заключается в том, что коэффициент должен быть равен коэффициенту 800000.3. Я согласен, что это довольно грубо. Да, я тоже безуспешно искал решение, разработанное Mathworks.
4. Сотрудники службы поддержки Matlab также говорят «нет». Если бы я работал в MathWorks, я бы нацелился на это улучшение функции для объекта «гистограмма». Похоже, я должен просто суммировать количество старых ячеек, которые попадают в каждую новую ячейку.
5. На самом деле, это довольно удивительно. Я предполагаю, что они предполагают, что реконструкция псевдоданных с использованием ячеек и подсчетов, после чего будет возможно получить новую гистограмму, но с большим количеством выборок, таких как 800 000, это довольно долгая задача.