Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Bücher:

Die nicht zu kurze Kurzeinführung in MATLAB

Studierende:
weitere Angebote

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Histogram leere Counts möglich?

 

Testing
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 12.10.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.10.2021, 10:55     Titel: Histogram leere Counts möglich?
  Antworten mit Zitat      
Hallo liebe Forenteilnehmer,

ich habe ein Matlab Problem:

Ich habe eine CSV Datei mit vielen Null Werten pro Zeile. Dabei sollen bin's mit den Werten Null geschrieben werden und der nächste bin mit dem Wert der nächsten Zeile gefüllt werden. Aktuell füllt er alle Zeilen mit den Werten null in den ersten Bin. Das soll nicht passieren.
Wie kann ich matlab mitteilen, dass ein bin mit dem Wert null auch gültig ist?

Viele Grüße

Testing
Private Nachricht senden Benutzer-Profile anzeigen


Testing
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 12.10.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.10.2021, 14:36     Titel:
  Antworten mit Zitat      
PS: Ich meine das jedem Bin im Histogramm eine Zeile fest zugeordnet ist. Auch wenn diese Zeile den Wert null beinhaltet.
Private Nachricht senden Benutzer-Profile anzeigen
 
aemon
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 26.10.17
Wohnort: Niedersachsen
Version: R2019a / R2021a
     Beitrag Verfasst am: 12.10.2021, 16:13     Titel:
  Antworten mit Zitat      
Hallo,

ich weiß noch nicht so genau, was du erreichen willst.

Grundsätzlich zählt histogram die Anzahl der vorhandenen Werte in bestimmten Intervallen.
Eine "Zuordnung" einer Zeile / eines Wertes zu einem Balken im Diagramm ergibt für mich keinen Sinn bzw. entspricht nicht der Funktion.

Den Bereich, in dem gezählt werden soll kann man hingegen auf mehrere Arten angeben.

Beispiel:
Code:
x=[0,0,1,0,1,0,2,0];
histogram(x,'BinEdges',[-0.5,0.5,1.5,2.5]);

Es sind 5 Nullen, die im Intervall -0.5 bis 0.5 liegen. Entsprechend ist der erste Balken bei 5.

Wenn du schon Histogramm-Daten hast eignet sich ein "bar" vermutlich besser:
Code:
xn=[5,2,1];
bar(xn)


Andernfalls erläutere noch mal (am besten mit Werten), was du hast und was du erreichen willst.

Gruß
Aemon
Private Nachricht senden Benutzer-Profile anzeigen
 
Testing
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 12.10.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.10.2021, 16:33     Titel:
  Antworten mit Zitat      
Hallo,

danke für deine Antwort.

Ich habe quasi Rohdaten einer radioaktiven Zerfallsmessung. Dabei entspricht jede Zeile einem bin und der Wert in der Zeile entspricht der Anzahl der Impulse in dem bin (auch: Kanal). Für weitere Auswertungen sollen die Daten in ein Histogramm überführt werden. Danach wird die x-Achse entsprechend verschoben, um eine Zuordnung von bin zu Energie durchführen zu können.

Beispiel Pseudocode:

A=[0;0;0;15;0];
Histogram(A,‘BinWidht‘, channel_size);

Danach wird A geplottet und die Werte 0 kommen in den ersten bin. Der Wert 15 in den 15. bin.
Aber in Wirklichkeit sollte der Wert 15 in den 1000. bin. Denn in der radioaktiven Zerfallsmessung entspricht einem bin eine festgelegter Zeitabstand.


Ich hoffe jetzt ist es klarer.

Viele Grüße

Testing.



aemon hat Folgendes geschrieben:
Hallo,

ich weiß noch nicht so genau, was du erreichen willst.

Grundsätzlich zählt histogram die Anzahl der vorhandenen Werte in bestimmten Intervallen.
Eine "Zuordnung" einer Zeile / eines Wertes zu einem Balken im Diagramm ergibt für mich keinen Sinn bzw. entspricht nicht der Funktion.

Den Bereich, in dem gezählt werden soll kann man hingegen auf mehrere Arten angeben.

Beispiel:
Code:
x=[0,0,1,0,1,0,2,0];
histogram(x,'BinEdges',[-0.5,0.5,1.5,2.5]);

Es sind 5 Nullen, die im Intervall -0.5 bis 0.5 liegen. Entsprechend ist der erste Balken bei 5.

Wenn du schon Histogramm-Daten hast eignet sich ein "bar" vermutlich besser:
Code:
xn=[5,2,1];
bar(xn)


Andernfalls erläutere noch mal (am besten mit Werten), was du hast und was du erreichen willst.

Gruß
Aemon
Private Nachricht senden Benutzer-Profile anzeigen
 
aemon
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 26.10.17
Wohnort: Niedersachsen
Version: R2019a / R2021a
     Beitrag Verfasst am: 12.10.2021, 16:55     Titel:
  Antworten mit Zitat      
Leider noch nicht so ganz...

Woher soll Matlab wissen, wo die 15 hin soll?


Code:
A=[0; 0; 0; 15; 0];
t=[250; 500; 750; 1000; 1250]
bar(t,A);


Gibst du eine Zeit an, kannst du die Impulse über die Zeit natürlich auch mit Balken darstellen.
Hat aber nicht viel mit einem Histogramm zu tun.
Private Nachricht senden Benutzer-Profile anzeigen
 
Testing
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 12.10.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.10.2021, 16:58     Titel:
  Antworten mit Zitat      
Jede Zeile ist einem Kanal zugeordnet. Die erste Zeile dem ersten Kanal usw. . Daher wäre eine 1:1 Zuordnung möglich. Die Werte liegen einer CSV Datei vor. Diese Datei wird zuvor über Import Data importiert. Ich soll ein vorgefertigtes Programm nachvollziehen, meines ehemaligen Betreuers. Und er hat es mit einem histogram gemacht.



aemon hat Folgendes geschrieben:
Leider noch nicht so ganz...

Woher soll Matlab wissen, wo die 15 hin soll?


Code:
A=[0; 0; 0; 15; 0];
t=[250; 500; 750; 1000; 1250]
bar(t,A);


Gibst du eine Zeit an, kannst du die Impulse über die Zeit natürlich auch mit Balken darstellen.
Hat aber nicht viel mit einem Histogramm zu tun.
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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2021 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.