Verfasst am: 20.07.2012, 09:13
Titel: Funktion um Indizes mit Bedingungen zu finden
Hallo Zusammen,
anbei mein Code (ich weiß nicht besonders schön und schnell weil viele Schleifen). Prinzipiell funktioniert das ganze wie folgt:
Ich habe die Größen Fahrpedal (fp), Geschwindigkeit (v_car) und Abstand zum Hindernis (dl). Als .mat im Anhang!
Index1 sucht die Indizes für die Bedingung: FP=0
Index2 sucht die Indizes für Bedingung: dl<=1m
Jetzt möchte ich die Geschwindigkeit v_car(index1) immer konstant von Index1 bis Index2 vorwärts schreiben.
Code:
%--------------------------------------------------------------------------
%Bedingung 1(Start Index): Suche Stellen bei denen das FP gerade 0 wird
%--------------------------------------------------------------------------
%--------------------------------------------------------------------------
%Bedingung 2(Stop Index): Suche Stellen bei denen denen die erkannte
%Situation erreicht wird, also der Abstand zu Situation dl sehr klein wird
%--------------------------------------------------------------------------
%--------------------------------------------------------------------------
% Plot zur Erklärung
%------------------------------------------------------------------------
figure
>> hold on
>> plot(v_car)
>> plot(dl,'g')
>> plot(fp,'r')
>> plot(index1,'c.')
>> plot(index2,'m.')
%--------------------------------------------------------------------------
% Suchen von TRUE Stellen in index1 und index2 und Ausgabe des entsprechenen Myindex und Transponieren für weitere Berechnungen
%--------------------------------------------------------------------------
Es kann sein dass MyIndex1 und MyIndex 2 unterschiedlich lang sind, da das Fahrpedal öfters 0 wird als der Abstand oder gar nicht!. Dann kann ich natürlich nicht mehr vorwärts schreiben mit:
Code:
for i=1:length(Myindex1)-1
v_rampe_start(Myindex1(i):Myindex2(i))= v_rampe_start(Myindex1(i));
Ziel wäre es 2 gleich lange Indizes zu erhalten und zwar immer Myindex2 als fixe Größe und für Myindex1 immer nur den am nächsten bei Index 1 liegt. Das bräuchte ich quasi automatisiert:
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.