2017-02-10 128 views
1

我對Matlab很陌生。我試圖繪製X,其中X是一個100x1向量,相對於Y,這是一個100x10矩陣。我想要結果爲X vs 10個不同的Y值都在同一個圖表中,每列的顏色不同。我可以考慮繪製這個矩陣的每一列的唯一方法是使用hold命令,但是之後我必須分割它,以便單獨獲取每列。是否有捷徑可尋?MATLAB - 一個矩陣的矢量散點圖?

回答

1

使用repmatX擴大爲與Y相同的尺寸。嘗試用plot(X,Y)繪製它們,如果它看起來很奇怪,則將它們中的每一個轉置(plot(X',Y'))。

您可以使用linespec參數來選擇線條樣式,標記樣式等。例如,plot(X,Y,'.')將指示每個頂點沒有連接線的點。

+0

啊這確實工作!謝謝!爲什麼你必須用'repmat'這樣做,當它看起來應該有一個更直觀的方法來做到這一點 - 散點圖只對y進行載體似乎不正確。 – rb612

+0

它的工作原理是因爲當你有兩個矩陣時,它會繪製每列與另一列的關係。如果你只是使用'plot(X,Y,'。')'沒有使用repmat,會發生什麼? – tmpearce

1

你並不需要使用repmat,只需使用plot代替scatter

plot(X,Y,'o') 

下面是一個例子:

% some arbitrary data: 
X = linspace(-2*pi,2*pi,100).'; % size(X) = 100 1 
Y = bsxfun(@plus,sin(X),rand(100,10)); % size(Y) = 100 10 
% you only need the next line: 
plot(X,Y,'o') 
legend('show') 

scatter_plot