|
|
möchte ganze Zahlen als Kommazahlen darstellen |
|
Leine |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.12.2009, 14:59
Titel: möchte ganze Zahlen als Kommazahlen darstellen
|
 |
|
 |
|
Ich lese mit meinem Programm aus einer ROI (Region of Interest) die verschiedenen Pixelwerte aus, welche ganzzahlig sind.
Nun rechne ich den Durchschnitt der Pixelwerte aus, da diese logischerweise nicht unbedingt ganzahlig sind, möchte ich das Ergebniss in Kommadarstellung haben.
Dies gibt mir aber folgender Code leider nicht aus.
Dies wird übrigends für mehrere Bilder durchgeführt, deshalb der Vektor signd(c1-c?).
Sg = ist der Wert aller aufsummierten Pixelwerte in der ROI
signd(c1) = der Vektor in welchem die Durschnittswerte eingespeichert werden sollen
Beispiel:
ROIgröße = 3 x4 Pixel
Pixelwerte [60 74 76 83 24 64 96 25 47 29 46 49]
Sg = 673
signd(c1) = 673/12
signd(c1) = 56.0833 % das wäre optimal
signd(c1)= 56 % das bekomme ich
Jetzt gibt mir Matlab aber das Ergebniss 56 in den Vektor.
Da ich diese Werte für weitere Berechnungen brauche und mir dieser "Quantisierungsfehler" nicht in den Kram passt, wäre es super wenn mir jemand helfen könnte.
Wahrscheinlich hab ich einfach nur ein Brett vor dem Kopf.
Danke
PS: habe Matlab 7.9.0 (R2009b)
|
|
|
|
|
Jan* |

Forum-Century
|
 |
Beiträge: 178
|
 |
|
 |
Anmeldedatum: 06.11.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2007b
|
 |
|
|
 |
|
Verfasst am: 04.12.2009, 15:16
Titel:
|
 |
Hi,
kann es sein, dass der Datentyp von signd int oder uint ist? Das bekommst du heraus indem du bei der Variablenliste im Workspace die Spalte 'class' hinzufügst.
Gruß Jan
|
|
|
Leine |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.12.2009, 15:38
Titel: Programm
|
 |
Hab ich mir auch schon gedacht,
ist aber double.
Ich setzt mal das ganze Programm rein,
ist zwar nicht die höchste Programmierkunst aber ich programmiere erst seit 3 Wochen (überhaupts).
Beschreibung: |
|
 Download |
Dateiname: |
signwork.txt |
Dateigröße: |
2.62 KB |
Heruntergeladen: |
497 mal |
|
|
|
Leine |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.12.2009, 15:45
Titel: Shit
|
 |
Habs nochmal mit einer Testvariablen laufen lassen,
das Zwischenergebniss ist uint16, aber danach im Vektor wieder double
wie kann ich des machen das er mir das gleich in double rechnet?
PS:
Problem liegt in Zeile 55 -58
|
|
|
Jan* |

Forum-Century
|
 |
Beiträge: 178
|
 |
|
 |
Anmeldedatum: 06.11.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2007b
|
 |
|
|
 |
|
Verfasst am: 04.12.2009, 15:47
Titel:
|
 |
Ich sehe gerade, dass du da nichts anderes als den Durchschnitt berechnest. Mach das doch mal mit der Matlab-Funktion 'mean'
Wenn du bei deiner Lösung bleiben willst, musst du das Zwischenergebnis casten:
Gruß Jan
|
|
|
Leine |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.12.2009, 15:57
Titel: Danke
|
 |
Vielen Dank,
hab das Programm schnell auf mean umgeschrieben (das mit dem double hat irgendwie nicht gefunzt)
und jetzt funktionier es einwandfrei.
Grüße,
Linus
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|