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

Spalten aus Cell Array löschen

 

franzi5566
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 17.11.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.11.2017, 12:48     Titel: Spalten aus Cell Array löschen
  Antworten mit Zitat      
Hallo ihr lieben,

Ich hab mich noch nie mit Matlab beschäftigt, muss jetzt aber für meine Projektarbeit Messwerte filtern.
Dazu hab ich sie in einem Cell Array und möchte Zeilen löschen, wenn der Wert in der ersten Spalte NICHT 1; 1,5; 2; 2,5; 3; 3,5; 4 usw. ist.

Ich bin dankbar über jeden Tipp. mit einer If Schleife wills nicht so recht klappen..

Liebe Grüße
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.11.2017, 13:58     Titel:
  Antworten mit Zitat      
Hallo,

man müsste wissen, wie das Cell Array genau aufgebaut ist, am besten mit einem konkreten Beispiel. Grundsätzlich würde ich etwas folgender Form versuchen:

Code:
toDelete = mod(A(:,1), 0.5) ~= 0;
A(toDelete, :) = [];


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
franzi5566
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 17.11.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.11.2017, 10:45     Titel:
  Antworten mit Zitat      
Hey Harald, tausend dank. so klappt es auf jeden Fall.
Ich hab jetzt aber das Problem, dass meine Datei wohl zu groß ist um als Cell Array importiert zu werden (850000 Zeilen). Kann ich irgendwie die Datei direkt bearbeiten ohne sie zu importieren?

Das ist mein Code bis jetzt
Code:
i = 1;
zeitwert = test1Copy1(i,3);

[anzahl_zeilen, anzahl_spalten] = size(test1Copy1);

groesster_zeitwert = test1Copy1(anzahl_zeilen,3);

% erste Werte ueberspringen
while(zeitwert < 0.5)
    zeitwert = test1Copy1(i,3)
    i = i + 1;
end


%jede halbe Stunde nur den Wert packen
i = i - 1;
while(zeitwert < groesster_zeitwert)
    zeitwert = test1Copy1(i,3);
    if(mod((zeitwert * 4), 2) ~= 0)
        test1Copy1(i,:) = [];
        continue;
    end
    i = i + 1;
end
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.11.2017, 10:54     Titel:
  Antworten mit Zitat      
Hallo,

was für eine Datei ist es denn? Text, Excel, ...?
Am besten ist es, wenn du einen Dateiausschnitt (z.B. erste 100 Zeilen) anhängst.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
franzi5566
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 17.11.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.11.2017, 10:59     Titel:
  Antworten mit Zitat      
ich hab es im Moment als Text Datei aber das kann man ja leicht ändern.

test.txt
 Beschreibung:

Download
 Dateiname:  test.txt
 Dateigröße:  15.05 KB
 Heruntergeladen:  295 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.11.2017, 11:26     Titel:
  Antworten mit Zitat      
Hallo,

Textdatei ist generell besser.
Wie liest du die Datei derzeit ein (Code)? Benötigst du alle Spalten?
Hast du wirklich Komma als Dezimaltrennzeichen? Ich würde darüber nachdenken, die Kommas vorab durch Punkte zu ersetzen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
franzi5566
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 17.11.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.11.2017, 16:35     Titel:
  Antworten mit Zitat      
Zur Zeit nutze ich den Import Wizard.

Demnächst muss ich aber größere Dateien auswerten können, die wahrscheinlich auch zu groß zum Importieren sind.
Gibt es eine Möglichkeit das Skript was ich geschrieben hab direkt auf die Textdatei anzuwenden?
Oder Zeilen nur unter der Bedingung, dass der dritte Eintrag keinen Rest beim modulo hat einzulesen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 28.11.2017, 16:54     Titel:
  Antworten mit Zitat      
Hallo,

ich habe das gerade mal getestet. Mit dem aktuellen Release (R2017b) sollte das gewünschte auch direkt mit Tall Arrays gehen.
Mit welchem Release arbeitest du? Ist es möglich, auf das aktuelle Release zu wechseln?

Grüße,
Harald

Edit: ich war gedanklich bei diesem Thema:
http://www.gomatlab.de/zeilen-loesc.....45044,highlight,tall.html
Der Ansatz sollte aber auch hier funktionieren. Also mal bitte dort reinschauen - und möglichst nicht eine Woche warten, bis man reagiert, denn dann ist das bei mir längst schon wieder aus dem Sinn.
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.