multiple plots from array without loop
9 ビュー (過去 30 日間)
古いコメントを表示
Hi all
I have an array (X) holding lets say 20 cycles of data. I would like to plot the entire 20 cycles as a dashed line plot, and then markup (with a solid line) specific segments of the graph, the start and end indexes are in two different vectors S1 and S2. Would it be possible to do something like this:
plot(X,'k--');
hold on;
plot(X([S1:S2]),'r');
instead of using a loop as:
plot(X,'k--');
for i=1:length(S1)
plot(X(S1(i):S2(i),r,)
end
The only reason is I would like to avoid loops in my code, as I am plotting several graph segments within my code, and then having 30 for loops does not look good :)
Best, Tommy
2 件のコメント
KSSV
2016 年 12 月 2 日
This will work:
plot(X,'k--');
hold on;
plot(X([S1:S2]),'r');
You can try on your own...why doubt?
採用された回答
KSSV
2016 年 12 月 2 日
編集済み: KSSV
2016 年 12 月 2 日
I understand now...You may follow some thing like this:
X =[1 2 3 4 5 6 7 8 9 10];
S1=[1 4 9];
S2=[2 5 10];
plot(X,'k--');
hold on;
Y = NaN(size(X)) ;
Y([S1 S2]) = X([S1 S2]) ;
plot(Y,'r');
Introduce NaN's at the place you want to skip...plot will not show NaN's.
0 件のコメント
その他の回答 (1 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!