2017-02-22 4 views
3

До сих пор у меня это;Как уменьшить ширину баров на гистограмме в Matlab

Disp_X = X - mean(X); 
hist(Disp_X); 
h = hist(Disp_X); 

h.BinWidth = 0.001; 

h.BinWidth работал до того, чтобы сделать мои бары гораздо уже, но теперь я получаю сообщение об ошибке;

«Назначение полей неструктурному массиву».

Я не совсем понимаю, почему этого не было раньше, и теперь это так.

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

ответ

4

Команда, которую вы хотите, это histogram не hist. hist - это старая гистограмма, которая отображает результат. Выходы этой функции являются подсчетами и центрами бункеров. Выходной сигнал histogram является объектом гистограммы.

X = rand(1000,1); 
Disp_X = X - mean(X); 
h = histogram(Disp_X); 
h.BinWidth = 0.001; 

Затем добавить еще одну гистограмму.

hold on 
Y = rand(1000,1); 
Dy = Y - mean(Y); 
h2 = histogram(Dy); 
2

ответ Мэтта является правильным, если вы используете R2014b или позже, когда histogram был введен. Если вы используете более старую версию, то вы не можете использовать точечную нотацию и должны использовать set:

Disp_X = X - mean(X); 
hist(Disp_X); 
h = hist(Disp_X); 

set(h, 'BinWidth', 0.001); 
2

Оба других правильные ответы, но самый простой вариант будет установить это свойство при вызове функции :

histogram(Disp_X,'BinWidth',0.001) 
Смежные вопросы