ich habe folgendes Problem: Ich habe eine Tabelle, wo minutenweise alle Eigenbedarfsverbräuche aufgelistet sind (also 1440 Minuten pro Tag, zu jeder Minute der aktuelle Verbrauch). Jetzt habe ich eine zweite Tabelle, wo gelistet ist, zu welcher Minute sich welches Aggregat zuschaltet oder abschaltet. Diese will ich jetzt in die erste Tabelle integrieren, sprich, wenn sich die Feststoffdosierung (FSD) bei Minute 6 anschaltet, soll in die erste Tabelle bis zum ausschalten in die jeweilige Spalte eine 1 geschrieben werden. Beispielsweise wird die FSD bei Minute 10 wieder abgeschaltet. Dann soll von 6-9. Minute eine 1 geschrieben werden und ab der. 10. wieder eine 0 bis zur erneuten Anschaltung:
Ich habe mich schon daran versucht, nur will er irgendwie nicht die fehlenden Minuten aus Tabelle 2 (welche ja viel kürzer ist) mit dem vorherigen Wert in die Tabelle 1 integrieren...
Wäre für Hilfe sehr dankbar.
vorab folgende Fragen, damit man sieht, ob die Beispieldaten nur zufällig diese relativ schöne Form haben oder ob das immer so ist.
Ist die 1. Spalte der beiden Tabellen jeweils aufsteigend sortiert? Besteht sie ausschließlich aus ganzen Zahlen?
Enthält die 1. Spalte der 1. Tabelle ausschließlich aufeinanderfolgende Zahlen?
Grüße,
Harald
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 23.08.2012, 06:33
Titel:
Genau, die erste Spalte der ersten Tabelle ist immer sortiert fortlaufend, wie eine Uhr halt. 60 bedeutet hier also 1 Uhr morgens, 120 2 Uhr morgens, die Daten werden minütlich gesammelt.
Nachdem ich jetzt wieder Matlab zur Verfügung habe, merke ich, dass dies nicht der einzige Fehler ist. Allerdings war der eine Fehler trivial und man musste nur Table2 durch Table1 ersetzen. Das Mitdenken bei Lösungsversuchen ist durchaus erwünscht.
Ja super, danke Dir!
Aber ja, ist ja richtig, nur ist das mitdenken so eine Sache, es ist alles für mich noch recht neu, brauch es aber für die Abschlussarbeit, hatte bis jetzt noch keine Zeit zum rein arbeiten, erste Ergebnisse sollen jedoch trotzdem schon kommen. Also dann nochmals Danke für die schnelle Hilfe
Hey, aber nochmal eine ganz blöde Frage zum Verständnis, habe es zwar jetzt hinbekommen, da ich die Tabellen anders aufgebaut habe, jedoch gab es dort noch das Problem, wenn in Tabelle 2 mehrmals aufeinanderfolgend eine Null oder 1 erschien, wurde der index auch immer weiter hoch oder runtergezählt, sprich es erschien dann 1,2,3,4...., in der 3. Spalte wurden die on/off-Werte also immer zum vorherigen Ergebnis hinzu gezählt. Gibt es da auch noch eine solch elegante Lösung, wie die oben, oder geht das dann nur noch umständlich mit for Schleifen und if-Anweisungen?
also das Problem ist, das einige Aggregate softwaremäßig unnötige Schaltspiele haben, sodass sie mehrmals innerhalb einer Minute ein und ausgeschaltet werden, womit beispielsweise in der On- und Off-Tabelle einige Minutenwerte mehrfach erscheinen, also das beispielsweise Minute 20 3x erschein und sowohl bei on, als auch bei off, dann fängt er an, nicht Einsen auszugeben, sondern -2.
Gelöst könnte das Problem werden, dass alle Zeilen in On- und Off- gelöscht werden, die in beiden vorkommen. Sprich, wenn Minute 20 sowohl in On, als auch in Off vorkommen sollte, wird diese Zeile bei beidem gelöscht, kommt Minute 20 2x in On vor und 1x in Off wird auch nur eine Zeile gelöscht, die Andere bleibt vorhanden.
Hey,
also hab es jetzt erweitert um:
on1 = on(on(:,1) ~= off(:,1) ,1);
off1 = off(off(:,1) ~= on(:,1) ,1);
damit sind dann alle Zeilen raus, die bei beiden erscheinen, funktioniert leider nur, wenn on und off gleicher Dimension sind, also bei beiden die gleiche Anzahl an Zeilen vorhanden ist. Wie kann ich denn die Dimensionen beider angleichen?
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.