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 zwischen 2 Werten herausfiltern

 

SimonF
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 08.12.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.07.2010, 13:21     Titel: Werte zwischen 2 Werten herausfiltern
  Antworten mit Zitat      
Hi,

ist warscheinlich ein sehr kleines Problem, aber irgendwie finde ich die Lösung nicht.

Wie schaffe ich es, dass beim bearbeiten von Daten aus einer Wertetabelle nur Werte "durchgelassen" werden, welche zum Beispiel größer 1000 und kleiner -1000 sind?. Bei allen anderen Werten dazwischen soll einer 0 ausgegeben werden.
Andersrum kein Problem, aber so weiß ich gerade nicht, wie ich hier vorgehen soll.

Mittels einer einfachen in das Simulink-Modell eingebauten Matlab-Funktion funktioniert das ganze natürlich. Das Problem ist nur, dass ich insgesamt 120000 Werte habe und allein durch die Funktion das Programm mindestens 5 mal so lange dauert.

Also gibt es dafür eine einfache und schnelle Methode? (warscheinilch ists ganz einfach, aber ich sehs leider nicht)

vielen dank
Private Nachricht senden Benutzer-Profile anzeigen


Vito
Forum-Guru

Forum-Guru


Beiträge: 315
Anmeldedatum: 02.11.09
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 16.07.2010, 13:38     Titel:
  Antworten mit Zitat      
Hi,

so muss es funktionieren.
Code:

Daten = [1200 300 100 ... ];
Nullsetzen = find(-1000<Daten & Daten <1000); % hier werden alle indizies gefunden, die im Intervall -1000 bis 1000 liegen
Daten(Nullsetzen) = 0; % und hier werden alles größer 1000 und kleiner-1000 durchgelassen und der Rest "0" gesetzt.
 

Gruß,
Vito
Private Nachricht senden Benutzer-Profile anzeigen
 
SimonF
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 08.12.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.07.2010, 13:50     Titel:
  Antworten mit Zitat      
ja das ist in etwa die lösung die ich oben schon angesprochen habe. Die dauert mir aber zu lange.

ich dachte eher an einen simulink block wie "saturation" nur halt genau andersrum.
Private Nachricht senden Benutzer-Profile anzeigen
 
Lord nibbler

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.07.2010, 07:25     Titel:
  Antworten mit Zitat      
Hallo,

Schalte doch einfach zwei Saturation-Blöcke hinterainander einer von -Inf bis -1000 und einer von 1000 bis Inf.

Gruß Lord nibbler
 
DaiVadder

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.07.2010, 08:44     Titel:
  Antworten mit Zitat      
Ich würds mit 2 switch-blöcken machen.
Siehe Vorschlag

Vorschlag.mdl
 Beschreibung:

Download
 Dateiname:  Vorschlag.mdl
 Dateigröße:  21.97 KB
 Heruntergeladen:  477 mal
 
SimonF
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 08.12.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.07.2010, 08:57     Titel:
  Antworten mit Zitat      
Danke für den Vorschlag. Klappt wunderbar.

Das mit den zwei Saturation-Blocks hintereinander hatte ich auch schon ausprobiert. Das funktioniert leider nicht bei mir.
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.