|
|
Zeilen mit bestimmten Werten löschen |
|
Käsekuchen300 |
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 24.08.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.09.2018, 12:34
Titel: Zeilen mit bestimmten Werten löschen
|
|
Hallo,
ich habe folgendes Problem:
Ich habe eine Liste mit Koordinatenwerten (x, y und z). Ich möchte gerne alle Werte die am Rand liegen rauswerfen. Also z.B. der größte x-Wert überhaupt ist 700. Das heißt alle Zeilen bei denen x über 690 liegt, sollen raus.
Meine Koordinaten stellen quasi einen ausgefüllten Kreis dar. Daher Problem Nr. 1: Wie kriege ich überhaupt meine Randwerte? Für ein Rechteck ist das ja logisch, aber ein Kreis hat ja auch Randpunkte bei denen x und y nicht maximal sind.
Problem Nr. 2: Wir lösche ich die komplette Zeile? Für einen Quader hatte ich dabei folgende Idee:
Ich kriege hier aber den Fehler, dass ich bei meiner ersten if-Bedingung die Matrixdimensionen überschreite. Warum weiß ich nicht...
Hätte jemand einen Rat, wie ich mein Problem lösen könnte?
Viele Grüße,
Käsekuchen
|
|
|
|
|
J0nas |
Forum-Century
|
|
Beiträge: 208
|
|
|
|
Anmeldedatum: 10.09.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ab 2016a
|
|
|
|
|
|
Verfasst am: 03.09.2018, 12:53
Titel:
|
|
|
|
|
Hallo Käsekuchen,
zu Problem 1:
Du kennst deinen Mittelpunkt und deinen Radius? Du kannst folgendermaßen den Abstand deines Punktes (x,y) zum Mittelpunkt (xm,ym) berechnen:
Ist dieser Abstand größer als dein Radius liegt der Punkt außerhalb.
Zu Problem 2:
Du hast ein Array mit dem Namen "Array_name" und willst Zeile "n" löschen:
Zu deinem Code:
Eine For-Schleife wird so oft durchlaufen wie du ihr am Anfang vorgibst. Änderst du innerhalb der Schleife z.B. über
den Zähler, interessiert das die For-Schleife nicht. Sie läuft trotzdem so oft durch wie am Anfang vorgegeben. Du verkleinerst deine Matrix also innerhalb der Schleife, diese hat aber die Anzahl an Durchläufen von der anfänglichen, großen Matrix -> irgendwann versuchst du auf Zellen außerhalb deiner Matrix zuzugreifen. Da lohnt es sich auch mal den Workspace anzuschauen. Da kommt man über die Werte des Schleifenindexes, der Fehlermeldung und der Matrix oft auf den Fehler (zumindest solange er so einfach ist).
Also entweder eine While-Schleife verwenden oder die Schleife gleich ganz weg lassen.
Grüße
Jonas
_________________
1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
|
|
|
Käsekuchen300 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 24.08.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.09.2018, 13:47
Titel:
|
|
Vielen Dank!!! Da probiere ich doch gleich mal aus
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|