WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Werte aus Vektor mit zwei Grenzwerten

 

phippus
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 23.03.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.03.2015, 15:07     Titel: Werte aus Vektor mit zwei Grenzwerten
  Antworten mit Zitat      
Hallo Zusammen

Mein Problem ist wahrscheinlich sehr einfach, bringt mich momentan aber dennoch zum Verzweifeln...

Ich habe einen Vektor mit folgender Struktur:

[51.5
49.3
....
119.3
123.5 %Grenzwert wurde überschritten -> Beginn Aufzeichnung
125.0
121.0
118.3 %Grenzwert wurde unterschritten, aber Aufzeichnung soll weiterlaufen
....
56.0
51.0 %Unterer Grenzwert unterschritten --> Pause Aufzeichnung
49.0
....
118.5
120.5 %Grenzwert wurde überschritten -> Fortsetzung Aufzeichnung
....]

Ich möchte diesen Vektor unter den folgenden Bedingungen kürzen:
- Ist ein Grenzwert von z.B. 120 erreicht, so schreibe mir alle Werte darüber heraus
- Mache dies solange, bis der Wert einen unteren Grenzwert erreicht, z.B. unter 50 fällt
- War der Wert einmal unter 50, so warte wieder bis der Wert mindestens den Grenzwert von 120 erreicht hat und beginne wieder von vorne.

Besten Dank für eure Hilfe!
Private Nachricht senden Benutzer-Profile anzeigen


phippus
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 23.03.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.03.2015, 16:22     Titel:
  Antworten mit Zitat      
Habe es jetzt doch noch geschafft:

Für Interessierte (Code ist sehr sehr anfängerhaft, für mich reichts...):

[Abfluss_Observation] ist meine Matrix, mit Spalte 1 die Zeit und Spalte 2 die Abflussdaten (gesuchte Werte)


Code:


Abfluss_Observation_cut_down=Abfluss_Observation(index_treshold_down2,:);

Abfluss_Charak=zeros(length(Abfluss_Observation_cut_down(:,2)),1);


for i=2:length(Abfluss_Observation_cut_down(:,2))-1
   
    if Abfluss_Observation_cut_down(i,2)>=treshold_up
   
        Abfluss_Charak(i,1)=1;
       
    elseif Abfluss_Observation_cut_down(i,2)>=treshold_down1 &&  Abfluss_Charak(i-1,1)==1
       
        Abfluss_Charak(i,1)=1;
       
        else  Abfluss_Charak(i,1)=0;
    end
end

Abfluss_Cut=zeros(length(Abfluss_Observation_cut_down(:,2)),1);

for i=1:length(Abfluss_Observation_cut_down(:,2))
   
    if Abfluss_Charak(i,1) == 1
        Abfluss_Cut(i,1)=Abfluss_Observation_cut_down(i,2);
    else
        Abfluss_Cut(i,1)=0;
    end
end

Abfluss_Cut = Abfluss_Cut(Abfluss_Cut~=0);
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 23.03.2015, 16:28     Titel:
  Antworten mit Zitat      
ah schön das du eine lösung selber gefunden hast. hab mir vorhin auch ein paar gedanken gemacht
Code:
ind120=find(diff(matrix>=120)==1);
so findest du die indizes bei denen 120 erreicht oder überschritten wird. analog kann man auch was für das unterschreiten von 50 bauen natürlich.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.