2012-07-20 5 views
0

Je suis un peu coincé en traçant un tableau 3D dans MATLAB. J'ai créé des histogrammes qui varient lorsque je change un certain seuil. Signification, pour t = 65, j'ai un histogramme, pour t = 70, un autre et ainsi de suite. Je voudrais faire un tracé 3D ou une surface où la troisième dimension est ce seuil (t de 0-100 intervalles de 5) et les deux autres dimensions sont l'intensité et la fréquence respectivement (comme pour l'histogramme 2D). Comment puis je faire ça? J'ai regardé la plupart des outils de traçage tels que surf, isosurface, tranches et ainsi de suite. Aucun d'entre eux ne semble faire l'affaire. Ma matrice est 80x100x20 où la dimension 20 est celle du seuil. Des idées? MERCI!3d tableau Matlab plot

+0

Est-ce votre matrice 80x100x20 _after_ vous histogramme il? Sinon, quelle est la dimension supplémentaire? – Isaac

+0

@elektrochose: un histogramme régulier produit des données 1D (pour chaque bin, vous avez un compte/fréquence). Pouvez-vous être plus précis concernant votre matrice de données? – Amro

+0

Mon erreur, la matrice est 2x80x20. Il y a 80 bacs. Et 20 histogrammes. – elektrochose

Répondre

1

Peut-être un exemple pourrait aider:

%# 20 intervals 
t = linspace(0,100,20+1); 
labels = strtrim(cellstr(num2str([t(1:end-1);t(2:end)]', '[%g,%g)\n'))); %#' 

%# some sample data parametrized by t 
x = randn(1000,20); 
[count,bins] = hist(x, 10); 

%# plot 3D bar graph 
bar3(bins, count, 'histc') 

xlabel('param intervals'), ylabel('bins'), zlabel('counts') 
set(gca, 'XTick',1:2:20, 'XTickLabel',labels(1:2:end)) 
axis tight 

screenshot

+0

Oui! C'est ce que je cherchais. Je réalise mon erreur maintenant. Je pensais avoir affaire à 3 dimensions alors qu'en réalité je n'en avais que 2. Ton exemple m'a aidé énormément! Merci – elektrochose

+0

@elektrochose: content de pouvoir aider – Amro