Die Mathe-Redaktion - 21.08.2014 10:14
Auswahl
Aktion im Forum
Suche
Stichwortsuche in Artikeln und Links von Matheplanet
Suchen im Forum
Suchtipps

Bücher
Englische Bücher
Software
Suchbegriffe:
Mathematik bei amazon
Naturwissenschaft & Technik
In Partnerschaft mit Amazon.de
Kontakt
Mail an Matroid
[Keine Übungsaufgaben!]
Impressum

Bitte beachten Sie unsere Nutzungsbedingungen, die Distanzierung, unsere Datenschutzerklärung und
die Forumregeln.

Sie können Mitglied werden oder den Newsletter bestellen.

Der Newsletter August 2014

Für Mitglieder
Mathematisch für Anfänger
Wer ist Online
Aktuell sind 339 Gäste und 23 Mitglieder online.

Sie können Mitglied werden:
Klick hier.

Über Matheplanet
 
Zum letzten Themenfilter: Themenfilter:
Matroids Matheplanet Forum Index
Moderiert von mire2 gaussmath
Mathematische Softwarepakete » Matlab » 0 durch -1 ersetzen in einem "binären" Vektor
Druckversion
Druckversion
Autor
Universität/Hochschule J 0 durch -1 ersetzen in einem "binären" Vektor
MasterFX
Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 01.04.2004
Mitteilungen: 96
Aus:
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2007-02-27 13:52


Hallo
Ich stehe gerade vor dem Problem dass ich in einem Vektor der Nullen und Einsen enthält, die Nullen durch -1 ersetzen muss (wegen Codemultiplex). Jetzt habe ich das momentan so gelöst:
D1 = (TEMP_DAT(1,:)-0.5).*2;
TEMP_DAT ist einfach eine Matrix mit Zufallswerten. Es funktioniert ja, aber ich wollte einfach mal wissen ob Matlab dafür extra eine Funktion bereitstellt. Auch das generieren von Zufallsbits scheint mir mit meiner Lösung nicht optimal:
TEMP_DAT = round(rand(10,256));
Es funzt zwar, aber ich könnte mir vorstellen das Matlab da extra was für bereitstellt. Aber bei dem Funktionsumfang von Matlab übersieht man nunmal leicht diese Funktionen. Wäre für eure Hilfe dankbar.



  Profil  Quote  Link auf diesen Beitrag Link
walderich
Senior Letzter Besuch: im letzten Monat
Dabei seit: 03.05.2006
Mitteilungen: 1986
Aus: Bad Dürrheim, Deutschland
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.1, eingetragen 2007-02-27 14:16


Hi MasterFX,

Zum Generieren von Zufallszahlen aus [0 1] fällt mir spontan auch kein besserer Weg ein. Eventuell könntest du das noch so lösen:
Matlab
TEMP_DAT = rand(10,256) >= 0.5;

Dann hättest quasi dasselbe Array erzeugt mit dem Unterschied, dass der Datentyp bei diesem anders ist (Boolean statt Double). Außerdem gibt es einen Befehl namens 'randint' mit dem man Zufalls-Ganzzahlen erzeugen kann. Allerdings habe ich die entsprechende Toolbox dazu leider nicht, weshalb ich darüber nichts näheres weiß.

Zum Ersetzen der Nullen mit Einsen. Du kannst Matlab nach Nullen suchen lassen und an diese Stellen Einsen schreiben lassen. Das sieht dann etwa so aus:
Matlab
TEMP_DAT(TEMP_DAT == 0) = -1;

Solltest du aber den von mir oben gezeigten Ansatz mit den boolschen Werten gewählt haben, funktioniert das wegen des Wertebereichst so natürlich nicht mehr. Dann kannst du das so lösen:
Matlab
% Als int8 anlegen
TEMP_DAT = int8(rand(10, 256) >= 0.5);
% Nullen durch Einsen ersetzen
TEMP_DAT(TEMP_DAT == 0) = -1;

Viele Grüße,
Sebastian



  Profil  www  Quote  Link auf diesen Beitrag Link
Todd
Senior Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 29.06.2006
Mitteilungen: 476
Aus: Leipzig
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.2, eingetragen 2007-02-27 14:19


Hi,

ich glaube nicht, dass man in MATLAB speziel mit einer Binärdarstellung arbeiten kann. Es gibt zwar einige Befehle, um Binärzahlen in natürliche Zahlen und umgekehrt umzuwandeln, aber einiges bleibt wohl doch noch am Benutzer hängen.
Zu deinem Problem:
%Ersetzen der '0' durch '-1':
x=[1 1 0 0 1 0 1 0 0 1 0];
x(find(x==0))=-1;
 
randint(p,q) %Generiert eine (p,q) Matrix, in der die Zahlen '0'
             %und '1' gleichmäßig pro Zeile auf q Spalten verteilt sind

MFG
Todd



  Profil  Quote  Link auf diesen Beitrag Link
MasterFX
Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 01.04.2004
Mitteilungen: 96
Aus:
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.3, vom Themenstarter, eingetragen 2007-02-27 14:36


@walderich
Das mit dem ersetzen finde ich gut, den anderen Kram lass ich erstmal so.
Danke soweit!

@Todd
Matlab kennt bei mir randint nicht.



  Profil  Quote  Link auf diesen Beitrag Link
MasterFX hat die Antworten auf ihre/seine Frage gesehen.
Das Thema wurde von einem Senior oder Moderator abgehakt.
MasterFX wird per Mail über neue Antworten informiert.
Bewerte diesen Thread:
[Was sonst bewertet wurde]
 Neues Thema [Neues Thema]

 Druckversion [Druckversion]

 


Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2014 by Matroids Matheplanet
This web site was made with PHP-Nuke, a web portal system written in PHP. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]