2012-07-20 356 views
0

我有點卡在MATLAB中繪製3D數組。我創建了一些直方圖,因爲我改變了某個閾值。意思是,對於t = 65,我有一個直方圖,t = 70,另一個等等。我想製作一個三維圖或曲面,其中第三維是該閾值(t從0到100的間隔爲5),另外兩個維度分別是強度和頻率(如2D直方圖)。我怎樣才能做到這一點?我已經看過了大多數繪圖工具,如衝浪,等值面,切片等等。他們似乎都沒有做到這一點。我的矩陣是80x100x20,其中20維度是閾值的維度。有任何想法嗎?謝謝!三維矩陣Matlab繪圖

+0

是您的矩陣80x100x20 _after_你直方圖呢?否則,額外的維度是什麼? – Isaac 2012-07-20 12:33:08

+0

@elektrochose:常規直方圖產生一維數據(對於每個箱,你有一個計數/頻率)。你能更具體地瞭解你的數據矩陣嗎? – Amro 2012-07-20 12:47:59

+0

我的錯誤,矩陣是2x80x20。 有80個垃圾箱。 和20個直方圖。 – elektrochose 2012-07-20 13:21:11

回答

1

或許一個例子可能會有幫助:

%# 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

是的!這是我正在尋找的。我現在意識到我的錯誤。當我真的只有2歲時,我認爲我正在處理3個維度。你的例子幫助我了很多!謝謝 – elektrochose 2012-07-20 13:44:06

+0

@elektrochose:很高興我能幫上忙 – Amro 2012-07-20 13:48:45