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

Matrix - Spalten und Zeilen automatisch bearbeiten

 

User13

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.10.2013, 16:35     Titel: Matrix - Spalten und Zeilen automatisch bearbeiten
  Antworten mit Zitat      
Hey, wir sitzen derzeit an einem kleinen Problemchen und hoffen auf eine Lösung. Wäre super wenn Ihr uns helfen könntet.
Wir versuchen in einer Gruppe ein automatisiertes Programm mit Matlab zu erstellen, welches automatisch Daten erkennt und filtert. Dazu müssten wir bei einer Matrix die jeweilige Spalte prüfen und bei nicht erfüllen der Bedingung die zugehörige Zeile löschen. Bsp.
Bedingung: Zahl aus erster Spalte darf nicht größer als 350 sein

300 240 110 12
200 459 234 122
544 231 432 323 <- Bedingung nicht erfüllt. Zeile löschen
300 121 213 123

Es handelt sich dabei um sehr große Datensätze in Form von 3500x27 Matrizen. Deswegen wäre die Arbeit mit Schleifen und oder einer if - Anweisung vielleicht sehr sinnvoll.

Sind für jeden Tipp und jede Hilfe dankbar. Viele Grüße


Nras
Forum-Meister

Forum-Meister


Beiträge: 608
Anmeldedatum: 21.02.12
Wohnort: ---
Version: 7.12.0.635 (R2011a)
     Beitrag Verfasst am: 14.10.2013, 16:43     Titel:
  Antworten mit Zitat      
Hallo,
arbeiten mit einer Schleife oder mit If ist hier eher nicht angebracht. Zum Beispiel so sollte es gehen:

Code:
zeilen = find(A(:,1)>350);
A(zeilen,:) = [];


viele Grüße,
Nras.
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: 14.10.2013, 17:59     Titel:
  Antworten mit Zitat      
Hallo User13,

Und noch ein klein wenig effizienter ohne FIND:
Code:
A(A(:,1)>350,:) = [];

Das nennt sich "logical indexing".

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Nras
Forum-Meister

Forum-Meister


Beiträge: 608
Anmeldedatum: 21.02.12
Wohnort: ---
Version: 7.12.0.635 (R2011a)
     Beitrag Verfasst am: 14.10.2013, 18:21     Titel:
  Antworten mit Zitat      
Grmlpf Smile
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.