|
|
Zeilen mit Wert 0 löschen |
|
schlauburger |

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 23.07.08
|
 |
|
 |
Wohnort: berlin
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.09.2008, 16:16
Titel: Zeilen mit Wert 0 löschen
|
 |
Guten Tag.
Ich muss recht große (Tabellen-)Dateien bearbeiten.
So groß das Excel sie nicht mehr nimmt (ca. 3 millionen zeilen)
Ein Problem ist das ich alle Zeilen löschen möchte die in der 3. Spalte den Wert 0 haben (Die Spalten sind durch Leerzeichen getrennt). Die Zeile soll dann komplett verschwinden und der rest von unten nach oben "rutschen".
wie stell ich das am dümmsten an?
|
|
|
|
|
steffi |

Forum-Century
|
 |
Beiträge: 149
|
 |
|
 |
Anmeldedatum: 07.03.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.09.2008, 16:43
Titel:
|
 |
Geht es bei deiner Frage genaugenommen um das Einlesen der Daten oder ums löschen?
Für das Löschen:
http://www.gomatlab.de/bestimmte-ze.....mte+zeilen+l%F6schen.html
wobei du die Abfrage nicht nach der Teilbarkeit, wie im Link, machst sondern ob ein bestimmter Wert 0 ist z.B.:
_________________
Wenn ich bei der Arbeit mit Computern eins gelernt habe dann das ich einem Computer nur soweit traue wie ich ihn werfen kann.
|
|
|
schlauburger |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 23.07.08
|
 |
|
 |
Wohnort: berlin
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.09.2008, 16:47
Titel:
|
 |
es geht ums löschen.
ich werde mal versuchen mit dem link zu arbeiten.
leider sind meine programierkenntnisse nicht so gut aber ich hoffe ich schaffs
danke erstmal
|
|
|
nschlange |

Ehrenmitglied
|
 |
Beiträge: 1.320
|
 |
|
 |
Anmeldedatum: 06.09.07
|
 |
|
 |
Wohnort: NRW
|
 |
|
 |
Version: R2007b
|
 |
|
|
 |
|
Verfasst am: 08.09.2008, 21:46
Titel:
|
 |
Hi,
wenn Deine Daten in Matlab in der Matrix A vorliegen müsste sowas reichen:
_________________
Viele Grüße
nschlange
"Chuck Norris ejakuliert fluessigen Stahl!"
|
|
|
MEnde |

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 21.01.14
|
 |
|
 |
Wohnort: Wiesbaden
|
 |
|
 |
Version: 2011b Mac
|
 |
|
|
 |
|
Verfasst am: 24.01.2014, 13:27
Titel:
|
 |
|
 |
|
In diesem Zusammenhang habe ich mal eine Frage, und würde mich freuen wenn einer von euch Matlab Cracks zu meinem tieferen Verständnis beitragen könnte.
Ich habe mich auch damit beschäftigt, wie man Zeilen, die eine "0" als Wert besitzen, schnell löschen kann.
Auf folgende Ergebnisse bin ich gestoßen:
1. Variante mit der Summenfunktion
2. Variante mit der Any Funktion
3. Variante mit der Any Funktion, vereinfacht!
Alle drei Varianten führen zu dem Ergebnis, dass Zeilen mit einer "0" als Element gelöscht werden.
Jetzt meine Frage(n):
Was läuft bei der ersten Variante die Vorgehensweise von Matlab im Hintergrund ab? Ich verstehe nicht wo und wie eine Summe gebildet wird, die dann mit einem bestimmten Wert verglichen wird.
Hat Variante 3 einen wesentlichen Nachtteil im Vergleich zu Variante 1?
Sie kommt mir intuitiv als die bessere Alternative vor. Also gibt es da Vor- und Nachteile?
Wenn ich jetzt eine Matrix (35000 x 5) habe und die 0 Zeilen löschen möchte, lassen sich dann diese Varianten sicher anwenden?
Vielen Dank für euren Support.
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 24.01.2014, 13:33
Titel:
|
 |
hallo
bitte keinen alten thread karpern ^^ das wird nicht gern gesehn
jetzt zu deinen fragen :
Zitat: |
Was läuft bei der ersten Variante die Vorgehensweise von Matlab im Hintergrund ab? |
erst wird x mit 0 verglichen. taucht eine 0 auf ist also in der boolschen matrix eine 1 vorhanden. dann wird die summe dieser boolschen matrix entlang der 2. dimension gebiltet. sollten sich also in einer zeile nullen befinden so ist die summe logischerweise irgendetwas größer als 0 der vergleich >0 liefert also ein true.
die beiden nachfolgenden varianten sind gleichwertig. der vergleich mit >0 ist überflüssig da bereits any die selbe matrix liefert
bsp:
_________________
richtig Fragen
|
|
|
MEnde |

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 21.01.14
|
 |
|
 |
Wohnort: Wiesbaden
|
 |
|
 |
Version: 2011b Mac
|
 |
|
|
 |
|
Verfasst am: 24.01.2014, 14:52
Titel:
|
 |
Hallo,
vielen Dank erstmal für die schnelle Antwort.
Dank der guten Erklärung, habe ich es jetzt nachvollziehen können.
Eine Frage ist allerdings noch offen.
Kann man mit allen drei Varianten auch große Matrizen, wie z.B. mit 35000 Zeilen und 5 Spalten manipulieren, ohne dass Probleme bzw. Fehler auftreten? Oder ist es ratsamer eine For-Schleife zu programmieren?
Gruss
Ps.
Sorry, war nicht meine Absicht den Thread zu kapern. Dachte die Themen seien verwandt. Kommt nicht wieder vor.
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 24.01.2014, 14:54
Titel:
|
 |
Zitat: |
Kann man mit allen drei Varianten auch große Matrizen, wie z.B. mit 35000 Zeilen und 5 Spalten manipulieren, ohne dass Probleme bzw. Fehler auftreten? |
das ist nicht besonders groß.
warum sollte das nicht gehen? welche fehler sind bei dir aufgetreten?
_________________
richtig Fragen
|
|
|
MEnde |

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 21.01.14
|
 |
|
 |
Wohnort: Wiesbaden
|
 |
|
 |
Version: 2011b Mac
|
 |
|
|
 |
|
Verfasst am: 24.01.2014, 16:07
Titel:
|
 |
Noch sind keine Fehler aufgetreten.
Aber als blutiger Anfänger, wären mir vielleicht Fehler oder Ungereimtheiten nicht aufgefallen, die nicht offensichtlich sind.
Danke für die Info.
Ich werde mich jetzt mal der Sache weiter annähern und berichten.
Cheers
|
|
|
|
|
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.
|
|