Как отобразить значения в массиве в зависимости от того, сколько раз эти значения появляются в Matlab?

У меня есть набор возрастов (более 10000 из них), и я хочу построить график с возрастом от 20 до 100 на оси x, а затем количество раз, когда каждый из этих возрастов появляется в данных на оси y. Я пробовал несколько способов сделать это, и я не могу понять это. У меня также есть некоторые другие данные, которые требуют, чтобы я построил значения в зависимости от того, сколько раз они встречаются, поэтому любые советы о том, как это сделать, будут высоко оценены.

Я довольно новичок в Matlab, поэтому было бы здорово, если бы вы могли объяснить, как работают вещи в вашем ответе, а не просто набрать какой-то код.

Благодарю.

РЕДАКТИРОВАТЬ:

Поэтому я напечатал гистограмму (Age, 80), потому что, насколько я понимаю, на графике будут отображаться значения в Age на гистограмме, разделенной на 80 столбцов (по 1 для каждого возраста). Вместо этого я получаю это:

Столбцы не выровнены, и они явно не равны 1 на возраст и не отражают число раз, когда каждый возраст встречается на оси y.

2 ответа

Решение

Вы должны использовать histogram()и это правильно.
Давайте посмотрим на примере.

Я извлекаю 100 возрастов от 20 до 100:

ages=randsample([20:100],100,true);

Теперь я звоню histogram() таким образом:

h=histogram(ages,[20:100]); 

где h является объектом гистограммы, и это также покажет следующий график:

введите описание изображения здесь

Однако это может выглядеть легко из-за того, что мой возраст всегда находится в диапазоне 20:100, поэтому он не будет содержать никаких других значений. Если ваш вектор, как вместо этого, содержит также возраст не в диапазоне 20:100, вы можете указать дополнительную опцию 'BinLimits' в качестве третьего входа в histogram() как это:

h=histogram(ages,length([20:100]),'BinLimits',[20:100]); 

и эта опция строит гистограмму, используя значения в ages которые падают между 20 и 100 включительно.

Примечание: осматривая h Вы можете увидеть и / или отредактировать некоторые свойства своей гистограммы. Атрибут (поле) такого объекта, который вас может заинтересовать - это Значения. Это вектор длиной 80 (в нашем случае, так как мы работаем с 80 бинами), в котором i-й элемент - это количество элементов, это i-й бин. Это поможет вам подсчитать вхождения (на тот случай, если они понадобятся вам для продолжения анализа).

Как сказал Луис в комментариях, hist это путь Вы должны указать ребра ячеек, а не количество ячеек:

ages = randi([20 100], [1 10000]);
hist(ages, [20:100])

Это то, что ты искал?

Другие вопросы по тегам