2016-06-20 16 views
0

私はプロットしたいポイントのシーケンスを持っていますが、ポイントがあまりにも離れていると、結果として得られるカーブが破損する可能性があります。だから、1D CASEで曲線を小さな部分としてプロットするmatlab

:私はディスクリート部​​品seq1seq2と接続されていないseq3としての私のシーケンスをプロットしたい

  1-2-3 7-9-11-12 16-18-19 

or :  seq1  seq2  seq3 

:よう

1 2 3 7 9 11 12 16 18 19 

は次のようになります。

私はこの

+2

NaNを使用してデータを分割して別々の線にすると、線は同じ色になります。 'plot([1 2 3 NaN 7 9 11 12 NaN 16 18 19])' –

+0

どのくらいの違いが「あまりにも遠すぎますか? –

+0

@Sardar_Usamaなので、それは問題に特化しているので、私はあなたが選んだ任意の距離メトリックを使用することができ、 – idexi

答えて

1

海問題の解決のために以下のコードについては移動する方法があまりにもわかりません。私は可能な限り多くのコードを説明しようとしましたが、明らかでないものがあれば、躊躇しないでください。

% constants, thresold defintion 
T = 4; 
% your data 
a = [1 2 3 7 9 11 12 16 18 19 24 25 26 28 35 37 38 39]; 

% preparing the x-axis 
x = 1:length(a); 

% Getting the differences between the values 
d = diff(a); 
% find the suggested "jumps/gaps", greater/equal than the threshold 
ind = find(d>=T); 

figure; 
hold on; 
% Plotting the first part of a 
y = nan*ones(1,length(a)); 
y(1:ind(1)) = a(1:ind(1)); 
plot(x,y); 

% Plotting all parts in between: go through all found gaps 
% and plot the corresponding values of "a" between them 
for j=2:length(ind) 
    y = nan*ones(1,length(a)); 
    y(ind(j-1)+1:ind(j)) = a(ind(j-1)+1:ind(j)); 
    plot(x,y); 
end; 

% Plotting the last part of a 
y = nan*ones(1,length(a)); 
y(ind(j)+1:end) = a(ind(j)+1:end); 
plot(x,y); 
関連する問題