|
melanchos |

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 05.05.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.05.2009, 21:26
Titel: Zwei Fragen zu MATLAB
|
 |
Hallo zusammen!
Hab vor kurzem dieses Forum per google gefunden und ich hab gleich einige Fragen zu MATLAB die ich bisher noch nirgends rausfinden konnte.
- Wie kann ich bestimmte Plätze/einen ganzen Vektor mit einer bestimmten Zahl (z.B. 0) beschreiben (nicht mit einer Schleife).
- Ausserdem würde ich gerne wissen, wie ich bei einer Zahl nur die letzten x Bits nehmen kann.
Hoffe ihr könnt mir diese Fragen beantworten
mfg Patrick
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.497
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 05.05.2009, 21:51
Titel:
|
 |
Hallo,
1. Befehl zeros, z.B. für eine mxn - Matrix mit Nullen:
oder
um bestimmte Elemente auf 0 zu setzen. Beispiel:
setzt alle Elemente in A, die <0 sind, auf 0.
2. Befehl bitget. Siehe Example 2 unter
Grüße,
Harald
|
|
|
Epfi |

Forum-Meister
|
 |
Beiträge: 1.134
|
 |
|
 |
Anmeldedatum: 08.01.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.05.2009, 21:51
Titel: Re: Zwei Fragen zu MATLAB
|
 |
|
 |
|
melanchos hat Folgendes geschrieben: |
- Wie kann ich bestimmte Plätze/einen ganzen Vektor mit einer bestimmten Zahl (z.B. 0) beschreiben (nicht mit einer Schleife). |
Einen ganzen Vektor/Matrix mit Nullen beschreiben geht wunderbar mit der Funktion zeros.
Bestimmte Plätze gehen auch, aber dazu müsste das bestimmte etwas bestimmter sein ;) Grundsätzlich kannst Du über vektor(element) auf das Element "element" im Vektor zugreifen und auch Werte zuweisen. "element" muss dabei nicht ein Skalar sein sondern kann auch ein Vektor mit mehreren Werten sein -- dann wird auf alle Elemente zugegriffen.
Zitat: |
- Ausserdem würde ich gerne wissen, wie ich bei einer Zahl nur die letzten x Bits nehmen kann. |
Zum Beispiel so:
Die Reihenfolge ist bei der Ausgabe ungewohnt, die höchstwertigsten Bits stehen rechts. Wenn das nicht gewünscht ist, kannst du den Ausgabevektor mit fliplr spiegeln.
Wenn Du die gewünschten Bits maskieren und anschließend damit weiterrechnen willst, gibt es auch noch bitand - das dürfte etwas praktischer in der Handhabung sein.
|
|
|
melanchos |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 05.05.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.05.2009, 22:49
Titel:
|
 |
Vielen Dank euch beiden, das ist genau das was ich gesucht habe.
Das einzige problem ist, dass ich nachdem ich:
fliplr(bitget(123456789,1:6)) eingebe,
die letzten 6 Bits einzeln in einem Vektor x=[0,1,0,1,0,1] stehen.
Wie setzte ich diese nun am besten zusammen um sie mit bin2dec() wieder zu Dezimalzahlen machen kann?
Gibt es eine bessere Möglichkeit als
10^5*x(1)+10^4*x(2)+10^3*x(3)+10^2*x(4)+10*x(5)+x(6)
?
|
|
|
Maddy |

Ehrenmitglied
|
 |
Beiträge: 494
|
 |
|
 |
Anmeldedatum: 02.10.08
|
 |
|
 |
Wohnort: Greifswald
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.05.2009, 08:32
Titel:
|
 |
bin2dec erwartet einen String als Eingabe.
Versuchs mal wie folgt:
_________________
>> why
The computer did it.
|
|
|
Epfi |

Forum-Meister
|
 |
Beiträge: 1.134
|
 |
|
 |
Anmeldedatum: 08.01.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.05.2009, 08:41
Titel:
|
 |
melanchos hat Folgendes geschrieben: |
die letzten 6 Bits einzeln in einem Vektor x=[0,1,0,1,0,1] stehen.
Wie setzte ich diese nun am besten zusammen um sie mit bin2dec() wieder zu Dezimalzahlen machen kann? |
Das ist der Punkt mit dem Maskieren mit bitand. Durch ein bitweises, logisches UND mit einer Zahl, die nur an den Stellen 1 ist, mit denen Du rechnen willst, werden alle anderen Stellen 0. Du kannst dann direkt damit weiterrechnen:
|
|
|
melanchos |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 05.05.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.05.2009, 10:36
Titel:
|
 |
Ok Danke, ich habe es jetzt mit der Methode von Maddy gelöst.
|
|
|
melanchos |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 05.05.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.05.2009, 16:21
Titel:
|
 |
Ich habe nochmals einen Frage wofür ich nicht ein eigenes Thema eröffnet wollte.
Ich versuche, in einem Vektor x zu zählen, wie oft ein bestimmtes Zahlenpaar, z.B. ....,5,5,... vorkommt.
Mit histc() hab ich es schon versucht, das funktioniert jedoch nicht wenn ich schreibe histc(x,[5,5]), da es ja immer in einem Feld des Vektors allein schaut und nicht 2 gleichzeitig.
|
|
|
|
|
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.
|
|