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

Daten sortieren

 

danke

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2009, 20:57     Titel: Daten sortieren
  Antworten mit Zitat      
Hallo,

Ich möchte Daten in Bins einteilen. Das PRoblem ist, dass ich die Binbreite dx erst berechnen kann, wenn ich die Daten komplett eingelelsen habe.
Ich habe also einen Vektor data mit i Einträgen x_i und möchte den Wert x_i in den passenden Bin stecken.

Wie mache ich das in Matlab am effizientesten? Es geht nämlich um i sehr groß.

Vielen Dank.


Harald
Forum-Meister

Forum-Meister


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

Ich würde den Befehl HIST (mit Rückgabeargument!) verwenden.

Code:
einteilung = hist(x, ...)


Wie groß ist "sehr groß"? >1000000?

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2009, 21:45     Titel:
  Antworten mit Zitat      
Vielen Dank für deine Hilfe, aber ich versteh noch nicht ganz wie ich den Befehl anweden soll und ob er wirklcih mein Problem löst.

Ich stelle mein PRoblem mal ausführlicher dar:

Meine Daten sind sind Ankuftszeiten von Photonen. Von einem Microskop das eine Zeile rastert. Jetzt möchte ich wissen welchen Photon in welchen Pixel gehört.
Am Ende des Einlesens kann ich aus der Anfangsziet, der Endzeit und der Anzahl der Pixel pro Zeile die Zeit pro Pixel berechnen, also meine Pixelbreite und jetzt möchte ich möglichst effizient meine PHotonen in die richtigen Pixel stecken.

Nun hätte ich dabei gerne noch 2 Möglichkeiten. Einmal, dass im Pixel wirklich nur die Anzal der Photonen steht. Zum Anderen hätte ich gerne auch die Möglichkeit noch ein Wert pro Photon mitzuspeichern.
 
danke

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.04.2009, 17:19     Titel:
  Antworten mit Zitat      
Hat noch jemand einen Vorschlag?
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.449
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.04.2009, 22:01     Titel:
  Antworten mit Zitat      
Ich muss sagen, ich hatte mich an dieser Stelle ausgeklinkt, weil ich mit der Fragestellung nichts anfangen kann. Im Zweifelsfall mal die Hilfe zu HIST anschauen oder das an einem einfachen Beispiel ausprobieren.

Code:
x = rand(10,1)
einteilung = hist(x, 0:0.1:1)
Private Nachricht senden Benutzer-Profile anzeigen
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 30.04.2009, 13:06     Titel:
  Antworten mit Zitat      
Hallo,

ich versuche mal, es etwas deutlicher zu machen:

Code:
% Beipieldaten der Ankunftzeiten (400 Photonen)
t=linspace(0.1,5.3,400)+5e-2*randn(1,400);
% Annahme: es sind 20 Pixel
[photonen,pixelmittelpunkte]=hist(t,20);


photonen enthält nun die Information, wieviele Photenen in jedem Pixel sind. Es sind also 20 Werte, für jedes Pixel einer. Daher kann auch kein Wert für jedes Photon mitgespeichert werden! Das geht aber bei der Zuordnung für jedes Photon, in welchem Pixel es steckt. Für 400 Photonen sind das 400 Werte.

Code:
pixelnummer = zeros(size(t));
index1=cumsum(photonen);
index0=[0 index1(1:end-1)]+1;
for k = 1:length(index1)
    pixelnummer(index0(k):index1(k))=k;
end


Übersichtlich zusammenfassen könnte man dann
Code:
daten = [t;pixelnummer]


Hier besteht auch die Möglichkeit, einen Wert pro Photon mitzuspeichern:

Code:
daten = [t;pixelnummer;WertProPhoton];


Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
danke

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.05.2009, 12:34     Titel:
  Antworten mit Zitat      
Das Problem an der Anwendung des hist Befehls in meinem Fall ist folgendes:
Ich möchte nicht nur die Anzahl der Bins, sondern auch die Breite festlegen, da meine Messung nicht mit dem ersten Photon beginnt sondern mit einem Start Signal und auch nicht mit einem Photon endet.



Eine weitere Frage hätte ich noch.
Ich habe jetzt noch einen anderen Ansatz gewählt bei dem ich meine Daten als Vektor aus Strukturen Photon habe wobei Photon neben gewissen Daten die x und y Koordinate enthält. Nun würde ich gerne ein Bild erzeugen, das mir etwa durch die Intensität oder die Farbe des Pixels anzeigt wieviele PHotonen in diesem Pixel registriert wurden.

Hat jemand einen Vorschlag oder zumindest einen Ansatzunkt mit welchen Befelhen ich mich beschäftigen sollte?

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