|
|
Werte aus Matrix in Binär umwandeln |
|
Sektor |

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 10.10.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.12.2014, 16:12
Titel: Werte aus Matrix in Binär umwandeln
|
 |
Hallo zusammen,
ich habe eine sehr große Matrix mit ganzzahligen Messwerten (32bit).
Nun möchte ich diese Messwerte als Binärdaten in eine neue Matrix ausgeben.
D.h. jedes Element der Matrix soll binär dargestellt werden.
BSP.:
A(1:1) ist zum Beispiel der Wert
1325433856
und soll wieder in A(1:1) als
0100 1111 0000 0000 1000 0100 0000 0000
ausgegeben werden.
Normalerweise würde man dec2bin oder ähnliches Verwenden, allerdings funktioniert das nicht für eine komplette Matrix.
Oder muss ich jeden Wert tatsächlich einzeln konvertieren.
Ich konnte den Befehl für die komplette Matrixumwandlung nicht finden, kann mir jemand weiterhelfen?
vielen Dank
Klaus
|
|
|
|
|
Sektor |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 10.10.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.12.2014, 16:19
Titel:
|
 |
Hallo nochmal,
dec2bin funktioniert soweit schon, das Problem liegt daran, dass es zu viele Werte waren.
Kennt hierfür evtl. jemand einen Workaround, sodass man auch große Datenmengen verarbeiten kann?
Danke
mfg
Klaus
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 14.12.2014, 21:24
Titel: Re: Werte aus Matrix in Binär umwandeln
|
 |
|
 |
|
Hallo Sektor,
Wie groß ist die Matrix denn? Es kommt darauf an, ob dies 1e5 oder 1e9 Elemente sind.
Zitat: |
Nun möchte ich diese Messwerte als Binärdaten in eine neue Matrix ausgeben. |
Wozu ist dies gut? Intern sind die Daten ja sowieso binär gespeichert.
DEC2BIN erzeugt keine "binär-Werte", sondern Strings, die so aussen wie diese. Jeder Buchstabe belegt dabei 2 Byte, was bei 32 Bits dann 64Byte pro Zahl erzeugt. Das kann dann schon mal ganz schön riesig werden, und der Speicher wird dabei physikalische fast nur mit 0-bits gefüllt. Das ist sehr ineffizient.
Zitat: |
und soll wieder in A(1:1) als
0100 1111 0000 0000 1000 0100 0000 0000 |
Diese Nullen und Einsen sind wie gesagt Buchstaben in einem String. Deshalb kann "A(1,1)" auf keinen Fall dieser String sein, weil A(1,1) ein Skalar ist, der String aber aus 32 Zeichen besteht.
Wozu soll die Umwandlung also dienen?
Eine kleine Hilfe wäre es statt der Strings UINT8-Werte zu nehmen, dann hättest Du Du nur noch 1 Byte pro Ziffer statt 2. Effizient ist das aber immer noch nicht.
Gruß, Jan
|
|
|
Sektor |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 10.10.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.12.2014, 11:13
Titel:
|
 |
Hallo Jan,
danke für die Antwort und für die Hinweise.
Die Matrix ist 65535x4 groß, woraus ich eine Spalte extrahiere, also 65535x1.
Die Datenumwandlung dient mir im Moment lediglich zur Analyse dieser.
D.h. es ist an dieser Stelle nicht zwingend notwendig, effizient im Sinne der Performance zu arbeiten.
Aber ich stimme Dir zu, es ist etwas unpraktisch gelöst, erfüllt aber zunächst seinen Zweck.
vielen Dank
Grüße
Klaus
|
|
|
|
|
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.
|
|