2012-12-04 9 views
3

J'essaie de faire un histogramme dans matlab. Mes données sont énormes (3,5 millions), les données x et y sont de la même taille (les deux sont 3,5 millions)histogramme dans matlab avec une énorme entrée

Mes données d'origine a 200 200,88 matrice 3D, j'ai remodelé à 1 colonne le code pour cela: Lorsque j'essaie la commande hist (t), je n'ai qu'une barre de 1 seulement.

Mon espace de travail est comme suit:

dose <200x200x88 double> 
s  3520000 
size [200,200,88] 
t  <3520000x1 double> 

Pourriez-vous me dire comment faire un histogramme avec ces données?

Répondre

0

Pour obtenir un vecteur long unique à partir de votre tableau 3D, vous pouvez utiliser uniquement l'opérateur (:). Essayez le code suivant:

num_of_bins = 100; % de changement à ce que vous voulez # hist (dose (:), linspace (min (dose (:)), max (dose (:)), num_of_bins));

Le hist ne prendra que les limites pertinentes de dose (min max) et vous pouvez contrôler le nombre de bacs à volonté. J'ai utilisé linspace pour créer un vecteur bin linéaire, mais cela peut également être modifié pour un ensemble de cases différent en affectant un vecteur de plage différent.

1

Je suis capable de générer un vecteur de taille 3520000x1 et de construire un histogramme avec elle.

val = rand (3520000,1);

hist (val)

Il est possible que vos données a quelques valeurs aberrantes singulières la cause de vos bacs à ressembler à quelque chose comme (1,0,0, ..., 3519999). Si vous enregistrez vos corbeilles d'histogramme comme h=hist(data);, vous pouvez voir ce qui s'est passé.

Questions connexes