How to: Merging multiple graph lines
34 ビュー (過去 30 日間)
古いコメントを表示
Hello Guys,
my problem is that I have several data sets of different x-Arrays and always the same y-Array. Basically my plot functions looks like this: plot(x1,y,'g',x2,y,'b'....)
As I have drawn in the picture I want to merge all the lines as to always keep the lowest y-values going from left to right in terms of x-values. This should creat one single new plot that looks like the black line in the right picture. The left picture demonstrates the overlapping data sets.
Can I solve this problem graphically, e.g. using a plotting function to always display the lowest y-value or do I need to create a new 2D array that always picks the lowest y-value for every x- value? Maybe you can give me a base to start from. Sorry about my "untechnical" explanation, Im new to Matlab and coding in general.
Thanks in advance for your support. Pat
2 件のコメント
Guillaume
2014 年 10 月 18 日
It looks like you meant to attach or (better) embed a figure, but seems like you forgot
採用された回答
Guillaume
2014 年 10 月 20 日
編集済み: Guillaume
2014 年 10 月 20 日
I would concatenate all your x, get the unique values and their position and use the position with accumarray to get the minimum of y:
xall = [x1 x2 x3 ...];
[x, ~, indices] = unique(xall);
y = accumarray(indices, repmat(y, 1, N)', [], @min); %where N is the number of xi
plot(x, y);
edited for missing comma
10 件のコメント
その他の回答 (1 件)
Rick Rosson
2014 年 10 月 18 日
x = [ x1 x2 x3 ... ];
N = length(x)/length(y);
y = repmat(y,1,N);
plot(x,y);
2 件のコメント
vi trung kien
2018 年 3 月 21 日
編集済み: vi trung kien
2018 年 3 月 21 日
Dear Patrick, Can you suggest for me how to get one single united line that always displays Ymin(n), like you have scratched in the pictures attached.My problem the same as you before. Thanks for your help.
参考
カテゴリ
Help Center および File Exchange で Graphics Object Programming についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!