|
|
Zeilen einer Tabelle vergleichen mit for-Schleife |
|
NoobKaddy |
Forum-Anfänger
|
|
Beiträge: 13
|
|
|
|
Anmeldedatum: 18.09.20
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.09.2020, 15:00
Titel: Zeilen einer Tabelle vergleichen mit for-Schleife
|
|
Hallo zusammen,
ich habe eine Table mit Uhrzeiten in einer Spalte, manche Uhrzeiten sind doppelt in aufeinanderfolgenden Zeilen und diese Zeilen würde ich gerne mit einer for-Schleife in einem ersten Schritt finden. Wenn es möglich ist, dann würde ich gerne alle gleichen Zeilen finden und nicht nur zwei gleiche Zeilen.
E ist hierbei die entsprechende Tabelle, die verglichen werden soll. Daher wandele ich das Tabellenformat in ein Cell um, dass strcmp funktioniert.
Leider bleibt bei der Ausführung s1c immer der gleiche Wert (und zwar der letzte, der in der Tabelle vorkommt) und der Vergleich liefert daher nur für den letzten Wert eine 1.
Ich denke mein Fehler liegt unter anderem darin, dass s2c erst ab der zweiten Zeile beginnen darf und nicht auch in der ersten, doch wie bekomme ich das hin?
Gibt es eventuell noch eine andere Möglichkeit Zeilen miteinander zu vergleichen?
Vielen Dank für eure Hilfe!!
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 23.09.2020, 15:13
Titel:
|
|
Hallo,
sind die Uhrzeiten sortiert?
Was ist denn das letztliche Ziel?
Beispielhafter Input und der dafür gewünschte Output wäre hilfreich.
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 ;)
|
|
|
NoobKaddy |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 13
|
|
|
|
Anmeldedatum: 18.09.20
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.09.2020, 15:39
Titel:
|
|
Ich habe eine Beispieltabelle erstellt. Zum Prinzip: ich möchte die Spalte "Name" nach Apfel filtern und dort die Spalten Text1-Text3 ausgegeben bekommen. Manchmal, wenn das Datum von zwei Zeilen gleich ist, soll auch von dieser Zeile die Spalten Text1-Text3 ausgegeben werden.
Daher wollte ich ein Skript schreiben, welches prüft, ob zwei aufeinander folgende Zeilen aus der Spalte Datum gleich sind, um die Zeilen danach eventuell miteinander zu verknüpfen und weiter auszuwerten, aber soweit bin ich noch nicht.
Mir wäre es erstmal wichtig, wenn ich die Zeilen miteinander vergleichen kann und auch weiß, welche Zeilen dann zusammengehören.
Vielen Dank und viele Grüße
Beschreibung: |
|
Download |
Dateiname: |
Beispiel.m |
Dateigröße: |
638 Bytes |
Heruntergeladen: |
316 mal |
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 23.09.2020, 15:56
Titel:
|
|
Hallo,
hast du nun Uhrzeiten oder Datums, die anscheinend ganze Zahlen sind?
Ich würde dringend table als Variablenname vermeiden, da es eine gleichnamige Funktion gibt, die du noch dazu in der selben Zeile verwendest.
Zitat: |
Daher wollte ich ein Skript schreiben, welches prüft, ob zwei aufeinander folgende Zeilen aus der Spalte Datum gleich sind |
Das geht ohne jegliche Schleifen:
Zitat: |
um die Zeilen danach eventuell miteinander zu verknüpfen und weiter auszuwerten, aber soweit bin ich noch nicht. |
Dazu würde ich
findgroups
/
splitapply
verwenden. Das funktioniert auch, wenn Zeilen mit gleichem Datum nicht direkt aufeinander folgen.
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 ;)
|
|
|
NoobKaddy |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 13
|
|
|
|
Anmeldedatum: 18.09.20
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.09.2020, 08:44
Titel:
|
|
Hallo Harald,
ich habe ganze Daten mit Tag und Uhrzeit, aber ich dachte, dass man es zuerst vereinfachend so versuchen kann.
Mit diff kann ich nun die einzelnen Zeilen vergleichen und zuordnen. Mit splitapply komme ich jedoch nicht weiter, da in den Beispielen als func mean verwendet wird, ich möchte jedoch keinen Mittelwert, sondern ich möchte, dass, wenn ein Wert in diff 1 ist, bestimmte andere Zeilen in der Tabelle zusammengefasst werden.
Gibt es eventuell die Möglichkeit, wenn diff 1 ist, dass dann Apfel aus der ersten Zeile auch in die zweite Zeile kopiert wird? Dies soll jedoch am Ende nicht nur mit dem Begriff Apfel geschehen sondern mit egal welchem Wort, hauptsache die Zelle wird kopiert.
Danke und viele Grüße
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 24.09.2020, 09:22
Titel:
|
|
|
|
|
Hallo,
Zitat: |
ich habe ganze Daten mit Tag und Uhrzeit, aber ich dachte, dass man es zuerst vereinfachend so versuchen kann. |
Wenn man zu stark vereinfacht, lässt sich der Ansatz oft nicht auf die echte Situation übertragen und man fängt im Grunde nochmal von vorne an. Das ist sehr ineffizient. Beispiele sollten also gerne vereinfachend sein, aber die wesentlichen Eigenschaften der tatsächlichen Anwendung behalten. Es ist ein großer Unterschied, ob mit Datumsangaben oder Zahlen gearbeitet wird.
Zitat: |
da in den Beispielen als func mean verwendet wird |
Das sind Beispiele. Statt mean kannst du auch andere fertige oder selbstgeschriebene Funktionen verwenden.
Zitat: |
Gibt es eventuell die Möglichkeit, wenn diff 1 ist, dass dann Apfel aus der ersten Zeile auch in die zweite Zeile kopiert wird? Dies soll jedoch am Ende nicht nur mit dem Begriff Apfel geschehen sondern mit egal welchem Wort, hauptsache die Zelle wird kopiert. |
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 ;)
|
|
|
NoobKaddy |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 13
|
|
|
|
Anmeldedatum: 18.09.20
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.09.2020, 11:13
Titel:
|
|
Hallo Harald,
du hast leider recht. Für mein Beispiel funktioniert die Übertragung der einzelnen Zellen in die folgenden, für meine große Tabelle wird immer nur die darauffolgende Zelle einbezogen, nicht aber die übernächste. Ich versuche dieses Problem nun über eine Schleife noch zu lösen.
Danke und viele Grüße
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 24.09.2020, 12:35
Titel:
|
|
Hallo,
das ist sicher über eine Schleife lösbar. Man sollte sich aber angewöhnen, unnötige Schleifen zu vermeiden.
Für weitere Unterstützung bitte folgendes beantworten:
* Sind die Datumsangaben denn nun sortiert, bzw. sind die Daten für gleiche Datumsangaben immer in aufeinanderfolgenden Zeilen?
* Gibt es zu Zeilen von einem Datum immer genau einen nicht-leeren Namen?
* Steht dieser Name immer in der ersten der Zeilen von einem Datum?
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 ;)
|
|
|
|
|
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 - 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.
|
|