|
|
Excel Daten importieren ab einem bestimmten Wert? |
|
Zoe401 |

Forum-Fortgeschrittener
|
 |
Beiträge: 88
|
 |
|
 |
Anmeldedatum: 07.10.15
|
 |
|
 |
Wohnort: Bei Stuttgart
|
 |
|
 |
Version: R2015a
|
 |
|
|
 |
|
Verfasst am: 09.10.2015, 09:49
Titel: Excel Daten importieren ab einem bestimmten Wert?
|
 |
Hallo,
ich möchte in Matlab Daten importieren und das automatisieren, ist ja nicht so schwer! Einfach importieren und dann über "generate function" den Code generieren.
Wie mache ich es aber, wenn ich sage will "Ab da importieren wo diese eine Spalte zum ersten mal den Wert 1 überschreitet!" ???
Hat da jemand eine Idee?
Liebe Grüße,
Zoe
|
|
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 09.10.2015, 10:51
Titel:
|
 |
warum willst du das machen? sind deine daten so riesig das sie deinen ram sprengen und du die daten nicht einfach nach dem einlesen bearbeiten kannst?. wenn du ab einem bestimmten wert irgendwas einlesen willst muss ja trotzdem erst dieser wert gefunden werden. dazu muss ja auch alles bis zu disem wert einmal eingelesen werden. die festplatten aktivität sollte also ähnlich groß sein. performanter wird das dadruch nicht denke ich. viel einfacher ist es meist einfach alles einzulesen und dann die eingelesenen daten nach deinen kritärien zu bearbeiten.
_________________
richtig Fragen
|
|
|
Zoe401 |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 88
|
 |
|
 |
Anmeldedatum: 07.10.15
|
 |
|
 |
Wohnort: Bei Stuttgart
|
 |
|
 |
Version: R2015a
|
 |
|
|
 |
|
Verfasst am: 09.10.2015, 10:55
Titel:
|
 |
ok und wie kann ich die bearbeiten und sagen alle alle variablen (51202x1) ab der spalte beginnen wo eine spalte den wert 1 zum ersten mal überschreitet?
Also wenn die bestimmte spalte in zeile 56 das erste mal den wert 1 übersteigt, das die anderen variablen auch alle werte davor rauskicken und auch erst ab der zeile 56 beginnen?
(blöd beschrieben, aber ich weiss nich wie ich es sonst beschrieben soll sorry)
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 09.10.2015, 11:07
Titel:
|
 |
welche anderen variablen? warum speicherst du alles in unterschiedlichen variablen und nicht in einem array/cell/struct? letzteres kann man leicht mit einer schleife durchlaufen. wenn du 1000 variablen namen hast ist das ungünstig. diese lassen sich nur schwer dynamisch verarbeiten.
_________________
richtig Fragen
|
|
|
Zoe401 |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 88
|
 |
|
 |
Anmeldedatum: 07.10.15
|
 |
|
 |
Wohnort: Bei Stuttgart
|
 |
|
 |
Version: R2015a
|
 |
|
|
 |
|
Verfasst am: 09.10.2015, 11:47
Titel:
|
 |
Blöd erklärt sorry.
Ich habe B1...B20 diese Variablen enthalten eine 51200x1 Matrix, also eine Spalte mit ewig vielen Werten. Dann habe ich noch eine Spalte T der in einer Zeile x irgendwann den Wert 1 zum ersten mal überschreitet, und ab dieser Zeile sind auch alle anderen Variablen B1...B20 erst gültig, also müsste ich alle Zeilen darüber rausschmeissen.
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 09.10.2015, 12:33
Titel:
|
 |
und warum hast du keine matrix B der größe 51200x20 ?
das wäre doch viel einfacher damit kann man viel einfacher arbeiten als einen index im namen zu verstecken.
die lösung wäre dann einfach
oder jedenfalls so in der art.
wenn du jetzt aber 20 eizelne vektoren hast musst du das ja bei jedem vektor so machen .
_________________
richtig Fragen
|
|
|
Zoe401 |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 88
|
 |
|
 |
Anmeldedatum: 07.10.15
|
 |
|
 |
Wohnort: Bei Stuttgart
|
 |
|
 |
Version: R2015a
|
 |
|
|
 |
|
Verfasst am: 09.10.2015, 12:48
Titel:
|
 |
Das hört sich gar nicht so schlecht an, aber ganz verstehte ich diesen Code nicht, kannst du mir erklären was jede Zahl bedeutet?
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 09.10.2015, 12:50
Titel:
|
 |
Zitat: |
aber ganz verstehte ich diesen Code nicht |
das heist du verstehst ihn teilweise. welche bedeutung welcher zahl ist dir denn nicht klar?
brobier es doch an einem kleinen beispiel aus und spiel mit den zahlen rum.
hier kannst du ja ein wenig an den zahlen spielen und gucken was passiert.
_________________
richtig Fragen
|
|
|
Zoe401 |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 88
|
 |
|
 |
Anmeldedatum: 07.10.15
|
 |
|
 |
Wohnort: Bei Stuttgart
|
 |
|
 |
Version: R2015a
|
 |
|
|
 |
|
Verfasst am: 09.10.2015, 12:58
Titel:
|
 |
B(1:find(T>1,1)-1,: )=[];
Also geklappt hat es!
Super vielen Dank!
Zuletzt bearbeitet von Zoe401 am 09.10.2015, 13:08, insgesamt einmal bearbeitet
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 09.10.2015, 13:04
Titel:
|
 |
Hallo Zoe401,
Welches Detail verstehst Du nicht? Die Indizierung der Variablen B mit runden Klammern? Das Erstellen eines Logical Index mit dem ">" Operator? Den
find
Befehl mit dem in der Dokumentation beschriebenen 2. Input Argument?
Du kannst es einfach mal ausprobieren:
Und, wird es klarer?
Gruß, Jan
|
|
|
Zoe401 |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 88
|
 |
|
 |
Anmeldedatum: 07.10.15
|
 |
|
 |
Wohnort: Bei Stuttgart
|
 |
|
 |
Version: R2015a
|
 |
|
|
 |
|
Verfasst am: 09.10.2015, 13:09
Titel:
|
 |
heisst also die ",1" hinter "T>1" das es die erste die größer als eins ist nimmt?
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 09.10.2015, 13:14
Titel:
|
 |
Hallo Zoe401,
Bitte lese die Dokumentation von
find
. Du kannst direkt hier im Forum auf den Befehl klicken und kommst so sofort zu einer umfassenden Erklärung, was die Parameter bedeuten. Wildes Raten ist dagegen nicht effizient.
Die 1 heißt, dass
find
nur einen, nämlich den kleinsten passenden Index zurück gibt.
Gruß, Jan
|
|
|
Zoe401 |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 88
|
 |
|
 |
Anmeldedatum: 07.10.15
|
 |
|
 |
Wohnort: Bei Stuttgart
|
 |
|
 |
Version: R2015a
|
 |
|
|
 |
|
Verfasst am: 16.10.2015, 08:48
Titel:
|
 |
Wenn ich diesen Code eintippe geht das nur für Matrizen, gibt es eine Möglichkeit sowas auch zu schreiben für Cells oder tables?
Hab in den Foren nichts gefunden...
Undefined operator '>' for input arguments of type 'table'.
|
|
|
Zoe401 |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 88
|
 |
|
 |
Anmeldedatum: 07.10.15
|
 |
|
 |
Wohnort: Bei Stuttgart
|
 |
|
 |
Version: R2015a
|
 |
|
|
 |
|
Verfasst am: 16.10.2015, 08:55
Titel:
|
 |
Ok habs selber gelöst sorry:
Lösung: curly braces!
[EDITED, Jan, Bitte Code-Umgebung verwenden - Danke!]
|
|
|
|
|
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.
|
|