2016-05-28 21 views
0

爲我的代碼我有一個375x223x91數據集(稱爲'data1'),我很難作爲一個數字作圖。我可以成功地繪製個人切片使用:Matlab繪製一個數據集的總和

figure 
imagesc(data1(:,:,50)) 
axis image 
impixelinfo 
colormap(jet) 

% top-down view of slice 50 (of the 91 slices) of 'data1'. 

但是,我想總結91片中的每一個,並繪製自上而下的看法。我試圖寫一個'for循環'並且總結所有91個切片在z方向然後繪製這個,但我得到錯誤。您的幫助將不勝感激。謝謝。

(添加3D圖像額外的指導也可以理解)

+0

你得到了什麼錯誤?使用圖像 索引CData的必須尺寸[M×N個] – ThP

+0

錯誤,真彩色CData的必須是 大小[MxNx3] 錯誤於imagesc(第18行) HH =圖像(varargin {1}, 'CDataMapping', '比例') ; –

+0

在繪圖之前,對結果嘗試使用'squeeze'。 – ThP

回答

1

如果你要總結你的數據沿着第三維,你應該使用輸入到sum尺寸:

sdata = sum(data1, 3); 

然後你就可以正常顯示。

imagesc(sdata); 

至於繪製3D圖像,使用pcolor是,你可以做到這一點的方法之一。

p = pcolor(sdata); 
set(p, 'EdgeColor', 'none'); 

這會將圖像放在z = 0。如果你想改變它的位置,你可以改變ZData

zvalue = 10; 
set(p, 'ZData', 0 * get(p, 'ZData') + zvalue); 

另一種選擇是使用surf對象與FaceColor設置爲texturemapCData設置爲您的圖像數據。

s = surf(ones(2)); 
set(s, 'FaceColor', 'texturemap', 'CData', sdata); 

您可以調整XDataYData,表面的ZData調整在3D空間中的位置。