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

(n,2) Matrix mit Spalte eins als x-Achse

 

d_schm11
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 30.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.07.2010, 09:57     Titel: (n,2) Matrix mit Spalte eins als x-Achse
  Antworten mit Zitat      
Hallo mal wieder liebes Forum,

es handelt sich bei mir um folgendes Problem. Ich habe eine (n,2) Matrix, in deren ersten Spalte Zahlen von 1-24 stehen die in nicht geordneter Reihenfolge Uhrzeiten repräsentieren! In der zweiten Spalte sind diesen jeweiligen Uhrzeiten bestimmte Zahlen zugeordnet, die Ausreißerhöhen repräsentieren.

Ziel ist es nun, eine Grafik zu erstellen, in der auf der X-Achse ein Ablauf von 24 Stunden dargestellt ist. An den jeweiligen Stunden treten - von Stunde zu Stunde sowohl in der Höhe als auch in der Anzahl unterschiedlich - Ausreißer auf (2. Spalte). Diese sollen nun jeweils als eigene Balken über den jeweiligen Stunden geplotted werden. Ist dies möglich?? Für Lösungsvorschläge wäre ich wirklich seeeeehr dankbar!

Ich hoffe, dass Problem ist einigermaßen deutlich geworden...

Beste Grüße
d_schm11
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 15.07.2010, 10:28     Titel: Re: (n,2) Matrix mit Spalte eins als x-Achse
  Antworten mit Zitat      
Hallo d_schm11,

Zitat:
Ich habe eine (n,2) Matrix, ...
An den jeweiligen Stunden treten - von Stunde zu Stunde sowohl in der Höhe als auch in der Anzahl unterschiedlich - Ausreißer auf (2. Spalte).


Wenn in der ersten Spalte die Uhrzeiten stehe, wie können dann in der zweiten Spalte sowohl die Höhe als auch die Anzahl enthalten sein?? Ist Deine Matrix eine CELL oder STRUCT Matrix?

Die 2. Ausgabe von SORT enthält den Sortier-Index, mit dem Du Deine Matrix nach den Werten der 1. Spalte sortieren kannst.
Ein BAR-Plot sollte die benötigten Balken zeichnen können.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
d_schm11
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 30.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.07.2010, 11:24     Titel:
  Antworten mit Zitat      
Hi Jan,

vielen Dank für deinen Hilfeversuch. Die Anzahl ist in der zweiten Spalte nicht direkt ablesbar, aber in der ersten Spalte stehen beispielsweise 16 mal eine 1, wenn es um die Uhrzeit insgesamt 16 Ausreißer gibt.

Bei meiner Matrix handelt es sich übrigens um eine cell-Matrix.

Wenn ich diese Matrix sortiere und plotte sieht das alles noch sehr unsauber aus! Gibt es eine Möglichkeit nur die zweite Spalte der Matrix in einem Bar-Plot darzustellen. Die x-Achse könnte ich ja auch manuell anpassen.


Eine zweite Idee wäre, jeweils den Durchschnitt der Ausreißerhöhe pro Stunde darzustellen. So hätte ich insgesamt nur 24 Balken, was deutlich übersichtlicher wäre. Da ich jedoch verschieden viele Ausreißer pro Uhrzeit habe, weiß ich nicht wie ich das programmieren kann. D.h. in der ersten Spalte steht beispielsweise 16 mal eine 1, aber nur 5 mal eine 2 usw.. Wie kann ich dann den Durchschnitt der Ausreißerhöhe für die 16 Werte und darauf für die folgenden 5 Werte usw. berechnen?!?

Irgendwie komm ich hier einfach nicht weiter...
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 15.07.2010, 12:02     Titel:
  Antworten mit Zitat      
Hallo d_schm11,

Wenn ich es richtig rate, hast Du eine {n x 2} Cell Matrix, die in jedem Element ein Skalar enthält. (Es wäre einfacher, wenn Du das Format Deiner Daten genau beschreibst.)
Zuerst würde ich daraus eine DOUBLE Matrix machen, weil man damit rechnen kann. Danach kann HIST die Anzahl der Ausreisser zu jeder Stunde abzählen, und ACCUMARRAY kann die Mittelwerte der Werte berechnen. Es geht aber bei so kleinen Problemen auch manuell:
Code:
Data = cell2mat(YourCellMatrix);
MeanData = zeros(1, 24);
StdData = zeros(1, 24);
nData = zeros(1, 24);
for hour = 1:24
   thisHour = (Data(:, 1) == hour);
   if any(thisHour)
      nData(hour) = sum(thisHour);
      MeanData(hour) = sum(Data(thisHour, :)) / nData(hour);
      StdData(hour) = std(Data(thisHour, :));
   end
end

BAR zeichnet dann die Grafik.
Viel Erfolg, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
d_schm11
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 30.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.07.2010, 14:23     Titel:
  Antworten mit Zitat      
Vielen Dank für deine Hilfe Jan,

ich denke ich habe es jetzt einigermaßen hingekriegt!

Beste Grüße
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 - 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.