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

Bedingte Löschung Daten

 

A3141
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 10.03.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.03.2021, 16:19     Titel: Bedingte Löschung Daten
  Antworten mit Zitat      
Hallo Zusammen,

ich programmiere seit einiger Zeit mehr oder weniger Erfolgreich in Matlab und komme jetzt durch suchen und ausprobieren nicht weiter, sodass ich mich hier erstmalig an euch wende:

Ich habe zwei Messignale. Ein Signal dass mir anzeigt ob eine Düse an ist (y<-4) oder nicht ( y> -4). Das eigentliche Messignal (x) wird gestört sobald die Düse an ist, sodass ich jeweils 50 Daten nach öffnen der Düse löschen möchte. Beide Messignale haben den gleichen Zeitstempel.

Ich habe folgendes probiert:
Code:
t= find(y<-4);
t_delet = t;
N=50;
for i =1:N;
t_delet = [t_delet, t+i];
x(t_delet)=[];
 end


Hat nicht funktioniert. Confused

Ich danke schonmal für eure Hilfe!
Private Nachricht senden Benutzer-Profile anzeigen


Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 10.03.2021, 21:52     Titel:
  Antworten mit Zitat      
Hallo,
was ist "Hat nicht funktioniert. " ?
Bitte genaue Fehlermeldung, am sinnvollsten mit lauffähigem Minimalbeispiel.

Voraussichtlich liegt dein Problem darin, dass du ERST den t_delet Vektor komplett erstellen solltest.
Und erst NACH dem end die Werte aus x löschen.
Denn derzeit versuchst du in JEDEM Schleifendurchlauf mit dem immer größer werdenden t_delet aus dem immer kleiner werdenden x zu löschen.


(Wenn x ein Vektor mit Zahlenwerten ist, so sollte an der Stelle x(t_delet) diesem aber sinnvoller weise wieder ein Zahlenwert (bzw alternativ NaN) zugewiesen werden. Denn sonst verliert das Signal die Auflösung/Zeitstempel.)
_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
A3141
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 10.03.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.03.2021, 22:10     Titel:
  Antworten mit Zitat      
Hallo Martina,

danke für deine schnelle Antwort. Hab es zwischenzeitlich gelöst Very Happy
Code:

array_ges = [ x.', y.'];
[index] = find(array_ges(:,2)<-4);
index_index=size(index);

for i=1:index_index-1000
array_ges (index(i):index(i)+50,:) = NaN;
end

x_new = array_ges(:,1);



NaN statt [] hatte ich vorher schon drin, hab es aber hier weggelassen weil ich mein Problem vereinfacht darstellen wollte ...
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 13.03.2021, 13:23     Titel:
  Antworten mit Zitat      
Hallo A3141,

"index_index" is ein verwirrender Name für die Länge eines Arrays. index_index=size(index) ist tückisch, denn die Ausgabe von size ist ein Vektor. Dann wird in
Code:
for i=1:index_index-1000

der Colon-Operator ausgeführt und nimmt den ersten Wert des Vektors:
Code:
x = [2,3]
1:x   % also 1:[2,3] ?!?

Verwende stattdessen size(array_ges, 1) .

Gruß Jan
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 - 2024 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.