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

Werte aus Matrix in Binär umwandeln

 

Sektor
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 10.10.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.12.2014, 16:12     Titel: Werte aus Matrix in Binär umwandeln
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen


Sektor
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 10.10.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.12.2014, 16:19     Titel:
  Antworten mit Zitat      
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
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: 14.12.2014, 21:24     Titel: Re: Werte aus Matrix in Binär umwandeln
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Sektor
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 10.10.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.12.2014, 11:13     Titel:
  Antworten mit Zitat      
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
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.