2016-01-12 32 views
0

我得到了一個稱爲ttre和ttim的矢量,它包含一個頻率(從1到64)的實數和虛數據。該字段看起來像這樣:matlab scatter3繪製頻率上的實部和虛部

ttim 64x10100 single 
ttre 64x10100 single 

我可以很容易地通過使用命令現在

scatter(ttim(40,:),ttre(40,:)) 

作出一定行的2D散點圖,我想在一個三維散點圖顯示所有數據繪製其中X =真實值,Y =虛擬值和Z = [1 ... 64] 我爲Z創建了一個數組1到64,並將其複製到與其他變量相同的大小,方法如下:

z=(1:64)' 
z=repmat(z,1,10100) 

result: 
z  64x10100 double 

當我嘗試繪製3D散點圖時,出現「矢量x,yu,z必須具有相同尺寸」的錯誤...但是,據我瞭解,它們具有相同的尺寸。

>> scatter3(ttim,ttre,z) 
Error using scatter3 (line 64) 
X, Y and Z must be vectors of the same length. 

我希望有人能指點我在這裏正確的方向。

親切的問候

回答

1

scatter3需求點繪製,所以xyz應該是1×N個,其中N是你正密謀點的數量。我不知道你的數據是什麼,所以很遺憾我無法提供幫助。也許scatter3(ttim(:),ttre(:),z(:))的作品,但我不建議它爲您有大量的數據,它可能會導致您的計算機崩潰。

但是,也許z=1:64不是最好的選擇。這意味着你將擁有分散數據的64層(如建築物的樓層),不確定這是你想要的。

+1

我口中的話。他們在['scatter3'示例]中執行此操作(http://uk.mathworks.com/help/matlab/ref/scatter3.html#examples) – Steve

+0

謝謝。這實際上解決了這個問題。你說得對,數據點的數量太高了。我只是想快速查看數據是否正確。再次感謝你。 – Yosha