|
|
Dezimalzahlen -> Bitmaske |
|
core |

Forum-Anfänger
|
 |
Beiträge: 37
|
 |
|
 |
Anmeldedatum: 07.07.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.05.2013, 18:28
Titel: Dezimalzahlen -> Bitmaske
|
 |
Hi,
wieder habe ich nur eine sehr unschöne Lösung für ein eigentlich relativ einfaches Problem. Nämlich will ich Dezimalzahlen, z.B. 1-15 in ein Bitmasken-Array umwandeln. Rauskommen soll dann also
0000
0001
0010
...
1111
Bisher wandle ich über dec2bin in ein Char-Array um, steppe per Schleife durch und prüfe dann per if-Anweisung.
Scheint aber ein Problem zu sein, dass man maximal in einem Zweizeiler lösen können sollte.
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 19.05.2013, 20:03
Titel:
|
 |
Hallo,
wozu die for-Schleife?
Wenn du deinen Code posten würdest, könnte man sehen, was du eigentlich genau machen willst, und entsprechend auch Verbesserungsvorschläge liefern.
Die entscheidende Frage vor allem: soll das Ergebnis ein 15x4 char Array sein? Ein 15x1 cell Array? Vielleicht was ganz anderes?
Grüße,
Harald
|
|
|
core |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 37
|
 |
|
 |
Anmeldedatum: 07.07.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.05.2013, 20:47
Titel:
|
 |
Hm, ich hab den Post noch mal umformuliert. Dabei ist wohl verloren gegangen, dass das Ergebnis ein logical-Array sein sollte oder zumindest etwas, das man dann relativ einfach benutzen kann, um eine Matrix zu filtern.
Der Code schaut wie folgt aus:
Aufgerufen wird es dann per binstr2log(dec2bin(1:15))
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 19.05.2013, 21:59
Titel:
|
 |
Hallo,
das ist nun wirklich etwas umständlich ;)
Alternative Möglichkeiten:
Grüße,
Harald
|
|
|
core |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 37
|
 |
|
 |
Anmeldedatum: 07.07.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.05.2013, 23:08
Titel:
|
 |
Ja, ich sag ja, wenn irgendwann der Brute-Force-Hammer kommt, wirds selten schön.
Aber arrayfun kannte ich auch noch nicht. Auf jeden Fall viel schönere Lösungen. Vielen Dank.
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 19.05.2013, 23:22
Titel:
|
 |
Hallo core,
Wie wäre es mit:
Da kann man sogar auch auf arrayfun() verzeichten.
Dabei ist die Umwandlung in einen String innerhalb von DEC2BIN eigentlich schon unnötig indirekt. Wenn man die nicht benötigten Details weglässt, kommt man zu:
Gruß, Jan
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 20.05.2013, 09:25
Titel:
|
 |
Hallo Jan,
insbesondere das erste gefällt mir gut :) Schön einfach!
Grüße,
Harald
|
|
|
jurtsche |

Forum-Century
|
 |
Beiträge: 123
|
 |
|
 |
Anmeldedatum: 26.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.05.2013, 07:56
Titel:
|
 |
Jan S hat Folgendes geschrieben: |
Dabei ist die Umwandlung in einen String innerhalb von DEC2BIN eigentlich schon unnötig indirekt. Wenn man die nicht benötigten Details weglässt, kommt man zu:
Gruß, Jan |
Sehr arg gelöst.
Gefällt mir gut.
LG
|
|
|
|
|
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.
|
|