對不起。我在這裏新的在stackoverflow。我正在處理在2D平面中投影高維數據的自組織映射(SOM),其中該平面中的每個「節點」或框包含的值在0到1範圍內的值相對較小。如何將多維向量轉換爲RGB值以供說明?
下面是我想用RGB值進行着色的格子或矩陣的例子。
例如,在圖中的框包含重量比如
[0.000124, 0.000000004, 0.999923, 0.119999220, 0.999311, 0.000552, 0.00000001223, 0.00045, 0.00001132, 0.99999998211, 0.00000000000000008821]
我的算法只嘗試首先要考慮的三個值
this.setNodeColor(new Color((int)this.getDoubleElementAt(0) * 255,(int)(this.getDoubleElementAt(1)*255),(int)(this.getDoubleElementAt(2)*255)))
該算法產生的插圖以上。
格子中的每個盒子都有自己的權重,就像我上面發佈的一樣。 現在考慮上面給定的向量。這是格子中第一個BOX行0,第0列的值。
也許你想知道爲什麼它有一個藍色。 原因是,當插入向量的3個第一個值(大約爲(0,0,1))時,它會生成BLUEISH顏色爲0.999923 x 255 = 254,所以它看起來像(0,0,254) 。
現在我想利用節點的所有權重來爲BOX生成一種顏色,以便它可以產生如下所示的顏色變化。
我也知道,我認爲,該值是如此之小,我需要一些正常化。
我想問任何想法如何 - 正常化的值 - 使用所有的重量來創建一個顏色來繪製節點。 (更重要)
謝謝。請隨時要求澄清。
嘗試乘以2550而不是255,然後用類似'(x> 255)的東西剪切到255? 255:x; ' –
你有11個重量。也許有一些明智的方法將第一個9組織成3x3矩陣,然後找到特徵向量或特徵值。任何一個都可以用於rgb載體 –
問題是,權重實際上是變化的。我的意思是,有時它有11個權重,有時是20,有時是30等。 –