2017-02-10 13 views
1

私はMatlabの新機能です。 Xをプロットしようとしています。Xは100x1のベクトルで、Yに対して100x1のベクトルです。私は結果がXと10の異なったYの値をすべて同じグラフにしたい、各列に異なる色。私はこの行列の各列をプロットすると考えることができる唯一の方法は、holdコマンドを使用することですが、私はそれを分割して各列を個別に取得する必要があります。これを行う簡単な方法はありますか?MATLAB - マトリックスによるベクトルの散布プロット?

答えて

1

XYと同じサイズに拡張するには、repmatを使用してください。 plot(X,Y)でそれらをプロットしてみて、それが奇妙に見える場合は、それぞれを入れ替えてください(plot(X',Y'))。

linespec引数を使用してラインスタイル、マーカースタイルなどを選択できます。たとえば、plot(X,Y,'.')は、接続線がない各頂点にポイントを示します。

+0

ああ、これは動作しません!ありがとうございました!なぜこれを行うには直感的な方法が必要なように見えるときに 'repmat'を使ってこのようにしなければなりません - 散布図がyのベクトルだけを取るのは正しいとは思われません。 – rb612

+0

これは、2つの行列を持つときに、それぞれの列と他の行列をプロットするために機能します。 repmatなしで 'plot(X、Y、 '。')'をそのまま使うと、どうなりますか? – tmpearce

1

あなただけの代わりにscatterplotを使用し、repmatを使用する必要はありません。

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

関連する問題