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

Termine plotten

 

Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.02.2013, 17:10     Titel: Termine plotten
  Antworten mit Zitat      
Hallo,

ich habe ein Problem (siehe Anhang), welches ich bislang nicht lösen konnte:
Ich möchte eine tägliche Auflistung der Termine haben,

Dabei haben die Datensätze folgenden Format:

Termin 1 Besprechung 1
Termin 1 Besprechung 2
Termin 1 Besprechung 3
Termin 2 Besprechung 1
Termin 3 besprechung 1
Termin 3 Besprechung 2

Die Verwaltung bzw. die Zuordnung der besprechungen zu den Terminen habe ich nicht realisieren können.

Dabei habe ich versucht eine java.util.Hashtable zu nehmen
für die keys die Termine zu nehmen und für die Values die Besprechungen

leider ohne Erfolg, und die Visualisierung ist auch noch das Problem.


Viele Grüße

Unbenannt.png
 Beschreibung:

Download
 Dateiname:  Unbenannt.png
 Dateigröße:  6.63 KB
 Heruntergeladen:  501 mal
Unbenannt.png
 Beschreibung:
danke

Download
 Dateiname:  Unbenannt.png
 Dateigröße:  6.63 KB
 Heruntergeladen:  504 mal


Harald
Forum-Meister

Forum-Meister


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

ich würde Cell Arrays oder Dataset Arrays aus der Statistics Toolbox verwenden.

Welchen Datentyp haben die Termine? Welchen die Besprechungen?

Was soll mit den Daten gemacht werden? Davon wird auch das Format abhängen, in dem die Termine genau gespeichert werden sollten. Eine kleine Beispieldatei kann helfen.

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.02.2013, 21:07     Titel:
  Antworten mit Zitat      
Hallo Harald,

danke für die Rückmeldung:

Die Daten (termine und Besprechungen) sind im folgenden zeitformat "dd.mm.yyyy HH:MM:SS"

es soll, wie in der abbildung eine auflistung der besprechungen zu den jeweiligen Terminen statt finden.
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.02.2013, 21:43     Titel:
  Antworten mit Zitat      
Hallo,

dann versuchs mal mit Dataset Arrays, in Verbindung mit stack/unstack.
Code:
doc dataset % und dann unter Construction
doc dataset/unstack


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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.02.2013, 14:54     Titel:
  Antworten mit Zitat      
Hallo harald,

eine super idee mit dataset, jedoch habe ich noch ein problem:

meine Datensätze sehen ja, folgendermaßen aus

Termin 1 Besprechung 1
Termin 1 Besprechung 2
Termin 1 Besprechung 3
Termin 2 Besprechung 1
Termin 3 besprechung 1
Termin 3 Besprechung 2

sobald ich dataset einsetze, läuft es ja

Code:
ds = dataset({termin, 'termin'}, {besprechung, 'besprechung'})
 7.351e+005     7.351e+005


und beim unsteck-kommando bekomme ich eine fehlermeldung..
Code:
dsWide = unstack(ds);


ich orientiere mich an folgender seite
Code:
http://www.mathworks.de/de/help/stats/reshape-dataset-arrays.html
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.02.2013, 15:53     Titel:
  Antworten mit Zitat      
Hallo,

und welche Fehlermeldung bekommst du?
Beispieldatei und Beispielcode könnten dabei helfen, dich zu unterstützen.

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.02.2013, 19:05     Titel:
  Antworten mit Zitat      
Das was ich nicht verstehe ist. Wird die Zuordnung der besprechungen zu den terminenn automatisch gemacht...

die anzahl der besprechungen ist ja nicht statisch (im beispiel sind es 4 tests), bei meinem Fall kann es beliebig sein

Code:

termin = <300x1 double>
besprechung = <300x1 double>

ds = dataset({termin, 'termin'}, {besprechung, 'besprechung'})
dsWide = unstack(ds,'termin','besprechung');
dsWide(:,{'termin'})




Fehldermeldung
Code:
Warning: Variable names were modified to make them valid MATLAB identifiers.
> In @dataset\private\genvalidnames at 58
  In dataset.unstack at 174
  In test at 24
??? Error using ==> dataset.subsref at 82
Dataset array subscripts must be two-dimensional.

Error in ==> test at 25
dsWide(:)
 
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.02.2013, 19:59     Titel:
  Antworten mit Zitat      
Hallo,

Beispieldaten würden wie gesagt helfen, das nachzuvollziehen.
Sind die Termine chronologisch bzw. monoton?

Was ich versuchen würde: zu jeder Besprechung eine Zusatzinformation hinzufügen, die wievielte Besprechung das für einen bestimmten Termin ist. Diese Information sollte am besten als String abgelegt werden und kann dann als Spaltenüberschrift verwendet werden.

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.02.2013, 21:36     Titel:
  Antworten mit Zitat      
Hallo Harald,

japp die termine sind chronologisch aufgebaut

1. Termin 1 Besprechung 1
2. Termin 1 Besprechung 2
3. Termin 1 Besprechung 3
4. Termin 2 Besprechung 1
5. Termin 3 Besprechung 1
6. Termin 3 Besprechung 2

Also in Java würde ich eine Hasmap erstellen
Mit der Schleife würde ich die termine durchlaufen und die besprechungstermine zu den terminen in die hashmap packen.

keys wären die termine und values wären die besprechungen

#termin1: besprechung1 besprechung2 besprechung3
#termin2: besprechung1
#termin3: besprechung1 besprechung2
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.02.2013, 23:57     Titel:
  Antworten mit Zitat      
Hallo,

ich habe ehrlich gesagt keine Ahnung, was hashmaps sind. Du kannst allerdings Java auch aus MATLAB heraus aufrufen, wenn du das gerne möchtest.
Dem am nächsten käme in MATLAB wohl ein Cell Array.

Mit ein paar Beispieldaten kann ich gerne mal sehen, wie sich mein Vorschlag umsetzen lässt.

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.02.2013, 00:22     Titel:
  Antworten mit Zitat      
Hallo Meister,

Kurz und bündig Hashmaps:

Eine HashMap dient zum speichern von Key-Value (Schlüssel-Wert) Paaren. Das heisst man gibt einen Schlüssel an und kann zu diesem Schlüssel Werte abspeichern und zu genau diesem Schlüssel auch den Wert wieder aus der HashMap herausholen. Ein Schlüssel kann ein beliebiges Objekt sein und ist meist eine Object Id, Speicheradresse oder ein String. Wichtig ist jedoch, dass ein Schlüssel eindeutig ist, sodass niemals ein Schlüssel für zwei Werte exisitiert. [http://schabby.de/hashmap/]

ich bin auf dein Code-Vorschlag mal gespannt.
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.02.2013, 00:33     Titel:
  Antworten mit Zitat      
Wie gesagt, mit Beispieldaten wäre es einfacher als wenn ich mir auch da erst was aus den Fingern saugen muss.

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.02.2013, 01:08     Titel:
  Antworten mit Zitat      
ok harald,

besprechungs-vector
01.01.2014 20:00:00
01.01.2014 22:00:00
01.01.2014 13:00:00
01.01.2014 18:00:00
01.01.2014 20:00:00


termin-vector
01.01.2014 02:00:00
01.01.2014 02:00:00
01.01.2014 02:00:00
01.01.2014 02:00:00
01.01.2014 02:00:00

ist chronologisch aufgebaut zudem eine zeilenweise zuordnung,

damit ich mit den daten besser handtieren kann, habe ich die in serial date numbers umgewandet mit folgendem format "dd.mm.yyyy HH:MM"
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.02.2013, 12:25     Titel:
  Antworten mit Zitat      
Hallo,

hier ein Ansatz
Code:
termine = dataset('XLSFile', 'Termine.xls');
termine.TerminNum = datenum(termine.Termin, 'dd.mm.yyyy HH:MM:SS');
%termine.Besprechung = datenum(termine.Besprechung, 'dd.mm.yyyy HH:MM:SS');
neuerTermin = [find(diff(termine.TerminNum) > 0) + 1; size(termine,1)+1];
for I = 1:numel(neuerTermin)-1
    termine.Nummer(neuerTermin(I):neuerTermin(I+1)-1) = ...
        termine.Nummer(neuerTermin(I):neuerTermin(I+1)-1) - ...
        termine.Nummer(neuerTermin(I)) + 1;
end
termine.Nummer = cellstr(num2str(termine.Nummer));
termine = unstack(termine, 'Besprechung','Nummer');
termine.TerminNum = []


Das mit nur einem Termin zu testen hielt ich für sinnfrei, deswegen mit der angehängen Datei.

Grüße,
Harald

termine.xls
 Beschreibung:

Download
 Dateiname:  termine.xls
 Dateigröße:  11.43 KB
 Heruntergeladen:  597 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.02.2013, 16:36     Titel:
  Antworten mit Zitat      
Hallo,

die Idee ist super jetzt habe ich die Möglichkeit die Values zu den keys zuzuordnen...

Eine weitere Frage wäre, wie ich es am besten noch visuell darstellen könnte.

Da dachte ich mir für die Y-Achse die Termine und für die X-Ache ein Zeit strahl von 00 bis 24 uhr.

MIttels kategorisieren könnte ich die Besprechungszeitpunkte farblich markieren.

aber das mit imagesc() funktion habe ich es nicht hinbekommen

mit datetick('x','mmm','keepticks') kann man die x-Achse mit Date werte versehen...

könntest du mir da ein vorschlag machen, oder tipps geben
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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 - 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.