2017-06-19 153 views
-1

我有一個大小爲981 x 567 x 1154的矩陣M繪製3D矩陣中非零元素的3D位置

M是一個零矩陣,其中122 1位於特定的X,Y,Z位置。

我該如何在3D中繪製這個圖以查看matlab中這些1的分佈情況?

注意:如果我使用scatter3()plot3()功能,我必須提供3參數 - 在X,Y和Z向量。我基本上感興趣的是如何將M矩陣轉換爲這3個輸入,所以我可以將它們傳遞給函數。

+0

什麼是你的數據的含義是什麼?您可以使用['scatter3'](https://nl.mathworks.com/help/matlab/ref/scatter3.html)以3D形式顯示數據點。 – m7913d

+0

'Z'是一個零矩陣,在特定的X,Y,Z位置有'122'1。 – haxtar

+0

如果我使用'scatter3()'或'plot3()'函數,我必須提供'3'參數 - X,Y和Z向量。我主要關心如何將這個'M'矩陣轉換成這3個輸入,所以我可以將它們傳遞給這些函數。 – haxtar

回答

1

您可以使用find獲得非零元素的線性指標,並將其轉換爲3D指數與ind2sub如下:

[I] = find(M); 
[X, Y, Z] = ind2sub(size(M),I); 

現在你可以使用scatter3繪製您的3D要點如下:

scatter3(X, Y, Z) 

這將會給你定義爲一個小例子矩陣M以下結果:

M = zeros(5,5,5); 
M(2,1,1) = 1; 
M(1,4,5) = 1; 
M(2,2,2) = 1; 
M(3,2,2) = 1; 

enter image description here