2015-04-06 115 views
3

我有一個3×4的矩陣,其中每列有3個分量R,G和B的特定顏色。我需要將3D繪圖中的每個組件繪製爲單個點,並且如果可能,請使用與其對應的RGB組件的顏色繪製每個點。Matlab中的3D RGB圖

我嘗試過使用plot3函數,但它繪製了一條連續的線條,它只有一種顏色。

例如,這是我的矩陣:

centroids = 

47 85 104 126 
37 66 86 103 
36 55 71 90 

其中(47,37,36)是第一點的RGB座標,因此我需要繪製它作爲RGB空間和與此特定顏色的單點。我的想法是有一個像這樣的循環:

for i = 1:4 
    plot3(centroids(1,i),centroids(2,i),centroids(3,i),'Color',centroids(:,i)) 
end 

但它給我一個錯誤,而且我不試圖改變顏色,它描繪只有成行,並以相同的顏色。有沒有辦法將矩陣的每一列作爲獨立點和RGB分量的顏色來繪製?

回答

2

您應該改用scatter3函數。這裏是您的數據的樣本,假設它被包含在一個陣列稱爲A

scatter3(A(1,:), A(2,:), A(3,:), 50, (A/255)', 'filled') 

和結果:

Result

最佳,

+0

這正是我需要的,謝謝!有沒有辦法讓點更大?我在Matlab編碼方面很新穎,對於我的經驗不足感到抱歉! – 2015-04-06 10:55:34

+0

當然,要改變標記的大小,你可以改變'scatter3'的第四個參數,這或多或少是以像素爲單位的標記的面積。有關更多詳情,請參閱文檔。 – Ratbert 2015-04-06 10:57:44

+0

完美!非常感謝你! – 2015-04-06 10:59:22