0
我正在使用Matlab。我有一個3d rgb直方圖,它存儲每個(r, g, b)
值的像素數。三維矩陣非常稀疏。有沒有辦法在Matlab中處理稀疏的3D矩陣?我會被迫的。Matlab中的稀疏三維矩陣
我正在使用Matlab。我有一個3d rgb直方圖,它存儲每個(r, g, b)
值的像素數。三維矩陣非常稀疏。有沒有辦法在Matlab中處理稀疏的3D矩陣?我會被迫的。Matlab中的稀疏三維矩陣
你原來的問題不是很清楚,所以我重新制定了它,使它更易於理解,可搜索和有用。我現在回答您的問題,將其從未答覆的列表中刪除。如已知的,Matlab不直接處理3D矩陣。解決方法是使用稀疏矩陣的單元陣列。
假設您要創建僅包含元素(1, 1, 1)
和(1, 3, 50)
的稀疏矩陣,並假設A(1, 1, 1) = 1
和A(1, 3, 10) = 54
。你可以做到以下幾點:
mySp{1} = sparse(3, 3);
mySp{10} = sparse(3, 3);
mySp{1}(1, 1) = 3;
mySp{10}(1, 3) = 54;
這樣,
>> mySp
mySp =
[3x3 double] [] [] [] [] [] [] [] [] [3x3 double]
如可以看出,mySp
是10
元素的數組。第一個和第十個元素是稀疏矩陣,而其他元素是空的。非空的第一和第十稀疏矩陣可以被恢復爲
temp1 = mySp{1};
temp2 = mySp{10};
返回
>> temp1
temp1 =
(1,1) 3
和
temp2 =
(1,3) 54
你能解釋一下什麼是 '3D RGB直方圖'?也許,你的意思是每個顏色有一個條形的直方圖? – tashuhka
rgb直方圖具有紅色,綠色和藍色(每個從0-255)繪製爲x,y和z軸。我有一個形象。每個(r,g,b)值的像素數都繪製在空間中。把它看作是包含一些點的立方體。但是很多立方體都是空的。我想知道是否有辦法在不丟失有用數據的情況下縮小多維數據集。 – parth
你能包括你的代碼嗎? – tashuhka