Pergunta

Eu gostaria de construir um histograma com caixas desiguais (intervalos) .. Construção do matlab apenas histogramas com caixas iguais como se fosse um diagrama .. !!!

Por favor me ajude ... muito obrigado !!

Foi útil?

Solução

Aqui está um exemplo:

x = randn(100,1)*3;           %# some random data
e = [-10 -5 -3 -1 1 2 3 20];  %# edges of intervals:  e(i) <= x < end(i+1)
c = histc(x,e);               %# get count in each interval
bar(e, c, 'histc')            %# bar plot
set(gca, 'xlim',[e(1) e(end)])

output

Outras dicas

2 soluções:

  1. Especifique o compartimento centros com o segundo argumento para Hist.
  2. Especifique o compartimento Arestas com o segundo argumento para histc. Essa função leva algum processamento adicional, pois não gera o gráfico diretamente - siga o link para um exemplo de uso.

Você pode criar sua própria ferramenta de histograma para criar um histograma personalizado como desejar.

  • Use o histc para determinar quais caixas cada ponto cai dentro.

  • Em seguida, use Accumarray para contar o número de elementos em cada compartimento.

  • Em seguida, use a barra para desenhar barras de suas larguras escolhidas. Ou simplesmente criar patches dos tamanhos especificados. Use patch para isso.

Ou, mais simplesmente, basta usar o Hist.

hist(rand(1000,1),[0 .1 .3 .6 1])
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top