Find nth value in a matrix and plot on graph
Ältere Kommentare anzeigen
I have a program that plots a graph and marks 4 dots on each line represening +/- 2mph. I have it figured it out how to place the dots for the beginning and the end but not values 2 through n. I am using the find command but I am having a hard time getting it to find values 2 throught n. Here is the code I am using (will need VEX file that I have attached to run):
Run=6;
i72=zeros([max(Run) 1]); i68=i72; i62=i72; i58=i72; i22=i72; i18=i72; i12=i72; i08=i72;
i=1;
while i<=max(Run)
if i==1
i72(i)=find(VEX>=71 & VEX<=72,1,'first');
i68(i)=find(VEX>67 & VEX<68,1,'first');
i62(i)=find(VEX>61 & VEX<=62,1,'first');
i58(i)=find(VEX>57 & VEX<58,1,'first');
i22(i)=find(VEX<=22,1,'first');
i18(i)=find(VEX<18,1,'first');
i12(i)=find(VEX<=12,1,'first');
i08(i)=find(VEX<8,1,'first');
i=i+1;
elseif i>1 && i~=max(Run)
% Need to Fix
i72(i)=find(VEX<=72,1);
i68(i)=find(VEX<68,1);
i62(i)=find(VEX<=62,1);
i58(i)=find(VEX<58,1);
i22(i)=find(VEX<=22,1);
i18(i)=find(VEX<18,1);
i12(i)=find(VEX<=12,1);
i08(i)=find(VEX<8,1);
i=i+1;
else
i72(i)=find(VEX>=72,1,'last');
i68(i)=find(VEX>68,1,'last');
i62(i)=find(VEX>=62,1,'last');
i58(i)=find(VEX>58,1,'last');
i22(i)=find(VEX>=22,1,'last');
i18(i)=find(VEX>18,1,'last');
i12(i)=find(VEX>=12,1,'last');
i08(i)=find(VEX>8,1,'last');
i=i+1;
end
end
i70=round((i72+i68)/2); i60=round((i62+i58)/2); i20=round((i22+i18)/2); i10=round((i12+i08)/2); % calculate Segment end points: 70, 60, 20, 10 mph
plot(VEX,'b.'); hold on; grid on
plot(i08,VEX(i08),'r*',i12,VEX(i12),'r*',i18,VEX(i18),'r*',i22,VEX(i22),'r*',i58,VEX(i58),'r*',i62,VEX(i62),'r*',i68,VEX(i68),'r*',i72,VEX(i72),'r*')
xlim([0 70000])
Akzeptierte Antwort
Weitere Antworten (1)
Torsten
am 29 Aug. 2023
Run = 6;
i72=zeros([max(Run) 1]); i68=i72; i62=i72; i58=i72; i22=i72; i18=i72; i12=i72; i08=i72;
for i = 1:Run
if i==1
i72(i)=find(VEX>=71 & VEX<=72,1,'first');
i68(i)=find(VEX>67 & VEX<68,1,'first');
i62(i)=find(VEX>61 & VEX<=62,1,'first');
i58(i)=find(VEX>57 & VEX<58,1,'first');
i22(i)=find(VEX<=22,1,'first');
i18(i)=find(VEX<18,1,'first');
i12(i)=find(VEX<=12,1,'first');
i08(i)=find(VEX<8,1,'first');
elseif i>1 && i<Run
% Need to Fix
i72(i)=find(VEX<=72,1);
i68(i)=find(VEX<68,1);
i62(i)=find(VEX<=62,1);
i58(i)=find(VEX<58,1);
i22(i)=find(VEX<=22,1);
i18(i)=find(VEX<18,1);
i12(i)=find(VEX<=12,1);
i08(i)=find(VEX<8,1);
else
i72(i)=find(VEX>=72,1,'last');
i68(i)=find(VEX>68,1,'last');
i62(i)=find(VEX>=62,1,'last');
i58(i)=find(VEX>58,1,'last');
i22(i)=find(VEX>=22,1,'last');
i18(i)=find(VEX>18,1,'last');
i12(i)=find(VEX>=12,1,'last');
i08(i)=find(VEX>8,1,'last');
end
end
1 Kommentar
Ryan McCormack
am 29 Aug. 2023
Bearbeitet: Ryan McCormack
am 29 Aug. 2023
Kategorien
Mehr zu Graphics Performance finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


