2016-10-30 4 views
0

この質問は非常に基本的ですが、私はこれを行うための最良の方法を探しています。 matlabのプロットされた行については、どのようにして行のいくつかの点をマークすることができます。私はマークを使って直接プロットすることが可能であることを知っています。しかし、ラインがプロットされている場合、マークはプロットを区別するためのものです。いくつかの点を選択し、2回目をプロットする代わりに。例は、2番目の瞬間にマークされたポイントを「追加」したくない場合はMatlabのラインにマークを付ける最も良い方法

enter image description here

答えて

1

右下、カウンタiを持つサイクルのために非常にポイントがそのプロットを保つために「ライブ」、次にマーカーとしてのポイント再プロット。例:

x=1:10; 
y=2*x+4; 
plot(x,y) 
hold on 
plot(x,y,'+') 

「*」、「。」を使用できます。 「+」の代わりに他のマーカーを使用することもできます。

マーカーが均等に配置されるようにするには(データはオリジナルではありません)、等間隔のxベクトルを作成してから、プロットが極端でないと仮定してy値を補間し、 。次のような結果と

x=[1,1.5,2,2.3,3,4,4.8,5,6.1,6,7,8,9,10]; 
y=2*x.^2+4; 
plot(x,y) 
hold on 
x_lin=linspace(min(x),max(x),20); 
y_lin=interp1(x,y,x_lin,'linear'); 
plot(x_lin,y_lin,'+') 
hold off 

:たとえば
evenly spaced markers
「リニア」は、あなたが「キュービック」、「スプライン」などの他の補間方法を試すことができます結果は十分に得られない場合は...

+0

Thanks @ Omer! '+'記号を使用するとフィットしますが、グラフに示されているように間隔が均等になりません。すべてのポイントではなく、均等に間隔を置いたポイントにサインをプロットする必要があります。 – Abdulhameed

+0

To xfとyとの関係があまりにも「極端」でない場合は – Omer

+0

最後のコメントは偶然でした。私はあなたの質問として私が今理解しているものに答えるために私の応答に加えました。 – Omer

0

以下、この図に示されている(が、私はあなたには、いくつかの利点を持っていないと思います)

C = setdiff(A,B) 

代わり
B)プロットEを使用して "マークする" 点のアレイを分離、

A)は、2つのプロット命令を使用する検討最初のプロットあなたは「上を保持」コマンドを使用することができますを作成した後の状態

%not tested solution  
c1 = '.r' %red point, if they are near they seems a line 
c2 = '*b' %blue marker 
if (marker_condition == true) 
    plot(x(i), y(i), c2) 
else 
    plot(x(i), y(i), c1) 
end 
関連する問題