Verfasst am: 19.11.2020, 13:32
Titel: Löschen von Spalten in Tabelle/ Löschen von Text in Zelle
Hallo,
ich muß hier eine Tonne von Daten importieren. Ca 50 Spalten und >2000000 Zeilen.
Das ist für den Rechner nicht praktikabel.
Darum würde ich gerne die (1) Spalten Löschen in denen ein bestimmter Text steht und (2) Textinhalt reduzieren (also von :"Signlaresult:0x00" zu 0x00"
Ich scheiter schon an der Indexierung
Code:
idx = find(ismember(part1, 'bla')) Error using tabular/ismember(line37)
A and B must both be tables, or both be timetables.
Am besten kann man dir helfen, wenn du einen Dateiausschnitt und den Code zum Import zur Verfügung stellst.
50 Spalten und 2 Mio Zeilen sollten übrigens je nach Inhalt durchaus noch machbar sein. Man muss lediglich aufpassen, dass man sich keinen unnötigen Speicheroverhead einfängt.
Zitat:
Spalten Löschen in denen ein bestimmter Text steht
Das ist mir unklar. Soll wirklich die komplette Spalte gelöscht werden, wenn irgendwo ein bestimmter Text steht? Oder soll vielleicht eher eine Zeile gelöscht werden, wenn in einer Spalte etwas bestimmtes steht?
Zitat:
Textinhalt reduzieren (also von :"Signlaresult:0x00" zu 0x00"
Da sollte
erase
helfen.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Hallo Harald,
ich habe einen kleinen Ausschnitt mal angehangen.
Um das konkret zu machen:
- Ich möchte z.B. aus allen Zellen 'signaltoken:" oder auch nur das Anführungszeichen entfernen
- Ich möchte gerne alle Spalten entfernen die '{"issignaltokencalculated":"NO"' zum Inhalt haben
Erase führt übrigens auch zu Fehlermeldungen
Code:
newStr = erase(part1,'2020');
Error using erase (line35)
First argument must be a string array, character vector, or cell array of character vectors.
Ich möchte z.B. aus allen Zellen 'signaltoken:" oder auch nur das Anführungszeichen entfernen
Manche Spalten sind ja aber nicht mal Text, bei denen ergibt das also keinen Sinn. Ich würde das wirklich auf die Spalten anwenden, um die es dir geht.
Ich möchte gerne alle Spalten entfernen die '{"issignaltokencalculated":"NO"' zum Inhalt haben
Das ist mir weiterhin unklar. Bitte auf die Rückfrage eingehen:
Zitat:
Soll wirklich die komplette Spalte gelöscht werden, wenn irgendwo ein bestimmter Text steht? Oder soll vielleicht eher eine Zeile gelöscht werden, wenn in einer Spalte etwas bestimmtes steht?
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Hallo Harald,
ich habe zusätzlich das Problem das ich 100 Dateien zum import bekommen habe die auch noch unterschiedliche Datenstruktur haben. In manchen ist die Spalte [issignaltokencalculated":"NO"] enthalten...oder nicht.
Deswegen möchte ich in der Tabelle die Zelle suchen [issignaltokencalculated":"NO"] und die gesamte Spalte löschen- falls die Spalte vorhanden ist.
Um die Speichergröße zu reduzieren wollte ich Textzeichen über die gesamte Tabelle reduzieren.
Ich habe mittlerweile gesehen das die von mir geschickte Datei verschiedene Zelltypen enthält. Kann es sein das ich deswegen keinen Befehl ans rennen bekomme?
ich frage mich, ob man das nicht schon beim Datenimport angehen kann und soll.
Was mich z.B. wundert ist, dass dein Table die Standard-Namen Var1 bis Var63 hat. Das ist doch ohnehin unübersichtlich?
Braucht man denn meist überhaupt so viele Spalten? Wenn nicht, sollte man überhaupt nur die Spalten importieren, die man braucht, statt erst alles zu importieren und dann einen Teil wegzuwerfen.
Zitat:
Um die Speichergröße zu reduzieren wollte ich Textzeichen über die gesamte Tabelle reduzieren.
Datumsangaben würde ich als Datetime importieren statt als Zeichenkette. Dann ist die 2020 nur Teil der Anzeige.
Auch hier gilt, dass das meines Erachtens sinnvoll nur auf einer oder mehreren ausgewählten Spalte machbar ist.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Ich habe damit erstmal die Dateigröße von 13 auf 3,5mB reduziert. Ich versuche jetzt erstmal die die Dateien alle so zu konvertieren.
Dann die Einzeldateien wieder in eine Variable packen und die Datentypen ändern (z.B. Datetime).
Jetzt komme ich weiter!
Ich Danke Dir für Deine Hilfe! Der hinweis auf erase hat mir geholfen die Zellformate nochmal zu überprüfen. Daran lag es...
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
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.