2012-11-03 88 views
3

我有一個數據庫作爲這樣:卷創建

  • d(:,1) =經度
  • d(:,2) =緯度
  • d(:,3) =深度
  • d(:,4) =有毒金屬的濃度。

數據間隔不規則,如您所見,所有數據均爲矢量數據。您能否告訴我如何製作一個volume,其中所有的金屬濃度都被繪製爲顏色(這樣可以很容易地識別它的高或低),而經度,緯度和深度將在x軸,y軸,和z軸分別?

我知道我必須讓我的d(:,4) =體積數據(3D矩陣必須對應於緯度,長度和深度數據)。但我不確定如何創建一個三維數組...

回答

1

嘗試scatter3(X,Y,Z,S,C)(見doc

X,Y,Z是不言自明的。 S是標記的大小,C是顏色;你可以根據你的數據改變。

請試試看,如果遇到困難請更新您的問題。


更新1:感謝您的意見,我認爲要插在規則網格上的數據,切片數據。

% create a regularly spaced mesh between the exterma of the dataset 
xx = linspace(min(d(:,1)),min(d(:,1)),100); 
yy = linspace(min(d(:,2)),min(d(:,2)),100); 
zz = linspace(min(d(:,3)),min(d(:,3)),100); 

[xi,yi,zi] = meshgrid(xx, yy, zz); 

% interpolate the data in the regular space 
vi = interp3(d(:,1), d(:,2), d(:,3), d(:,4), xi, yi, zi, 'spline'); 

% choose the slice planes 
xslice = [-10 10]; yslice = 0; zslice = [-100, -50, -10]; 

% display the sliced interpolated data 
slice(xi,yi,zi,vi,xslice,yslice,zslice); 

查找在幫助功能(你可能需要調整了參數)。

但下一次:嘗試自己併發布您的嘗試。幫助更容易,再加上你會學到更多。

+0

嗨大衛,謝謝。如果x,y和z分別是lat,long和depth,其中S = size和C = color,則第四維仍然缺失(即我想用不同顏色顯示的金屬濃度)。但是,可以通過編寫以下命令來解決該問題:scatter3(x(:),y(:),z(:),[],metal(:))。但我真正想要做的是使金屬濃度的等值面。這需要首先製作一些「金屬」,如下所示:http://www.mathworks.com/help/matlab/ref/slice.html。請在這裏找到我的數據庫的一小部分:http://www.mediafire.com/view/?89kuz9e3yfrh92f – ToNoY

+0

(誰是大衛?)另外似乎你已經找到了自己的問題的解決方案。 –

+0

嗨Hugues,我沒有完成...我仍然不知道如何製作一個音量,然後從非均勻分佈的數據中切出音量。當人們用均勻分佈的隨機變量和功能完全沒有科學價值時,人們只是製作漂亮的彩色圖形/動畫是令人噁心的: – ToNoY