Programmieren in Matlab < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 16:32 Do 31.10.2013 | Autor: | kRAITOS |
Hallo.
Ich muss mich jetzt mit MATLAB auseinandersetzen, jedoch blicke ich da noch nicht ganz durch.
Ich soll ein Programm schreiben:
n [mm] \in \IN [/mm] beliebig:
[mm] n_{10} [/mm] = [mm] x_2
[/mm]
Also ich soll ein Programm schreiben, dass mir eine Zahl zur Basis 10 in die Zahl zur Basis 2 umrechnet.
Wie schreibe ich Programme in MATLAB? Vllt kann mir jemand mal einige Beispiele geben?
Was muss ich beachten beim Programme schreiben? Ich hab schon ein bisschen rumprobiert aber egal, was ich probiere, immer werden irgendwelche Fehlermeldungen ausgespuckt... :(
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 17:21 Do 31.10.2013 | Autor: | Marcel |
Hallo,
> Hallo.
>
> Ich muss mich jetzt mit MATLAB auseinandersetzen, jedoch
> blicke ich da noch nicht ganz durch.
>
> Ich soll ein Programm schreiben:
>
> n [mm]\in \IN[/mm] beliebig:
>
> [mm]n_{10}[/mm] = [mm]x_2[/mm]
>
> Also ich soll ein Programm schreiben, dass mir eine Zahl
> zur Basis 10 in die Zahl zur Basis 2 umrechnet.
>
>
> Wie schreibe ich Programme in MATLAB? Vllt kann mir jemand
> mal einige Beispiele geben?
> Was muss ich beachten beim Programme schreiben? Ich hab
> schon ein bisschen rumprobiert aber egal, was ich probiere,
> immer werden irgendwelche Fehlermeldungen ausgespuckt... :(
schau' mal
hier
auf Seite 33,34.
Du kannst halt sowas machen wie eine Funktion
function b = DeziToBinaer(n)
schreiben. Wichtig dabei (steht auch in der pdf-Datei):
Sie muss den Namen DeziToBinaer.m tragen.
Sollte sie fertig sein (oben steht ja gar keine Umrechnung), so ist b die
Zahl in Binärdarstellung - diese siehst Du beim Aufruf.
Aber ich denke, wenn Du das Beispiel r2d(x) aus der pdf-Datei verstanden
hast, wirst Du merken, dass Du, mitunter mit sinnvoller Umbenennung, nur
noch irgendwie die Umrechnung einbauen musst, ansonsten aber dort
eigentlich alles, was Du sonst brauchst, drinsteht.
P.S. Mit "irgendwelchen Fehlermeldungen" können wir hier wenig anfangen.
Wenn wir da noch was kontrollieren sollen, dann bitte schreiben, wie Deine
Eingabe lautet bzw. der Quellcode aussieht und was dann für eine
Fehlermeldung kommt. Prinzipiell kannst Du Deine Aufgabe, die man Dir
gestellt hat, auch genauso gut in Octave lösen. Und wenn Du magst, such'
mal nach "Tutorien für Matlab" oder "Tutorien für Octave", da findet man
auch oft nützliche Hinweise. Oder nach "Einführung in Matlab" oder sowas.
P.P.S. Wichtig ist bei Matlab auch, dass Du die Unterscheidungen kennst
zwischen den Operatoren * und etwa .*
Aber dazu kommt vielleicht auch später eine Frage. Hast Du denn eigentlich
schon eine Idee für den Algorithmus zur Umrechnung einer Zahl in
Dezimaldarstellung in ihre Binärdarstellung? Das kannst Du ja im
Pseudocode hinschreiben.
(Vielleicht nicht elegant, aber:) Sicher möglich ist es, dass dabei solch
ein Teil auftaucht:
Finde das maximale $N [mm] \in \IN_0,$ [/mm] für das [mm] $2^N \le n_{10}$ [/mm] gilt.
Beispielsweise:
Ist [mm] $n_{10}=19\,,$ [/mm] so ist [mm] $2^4=16 \le [/mm] 19$ und aber schon [mm] $2^5=32\,.$ [/mm] Also wäre das
obige [mm] $N\,$ [/mm] hier durch die Zahl [mm] $4\,$ [/mm] gegeben. Damit sieht die Binärdarstellung
schonmal so aus:
1 _ _ _ _
(Es wird dabei 1 0 0 1 1 rauskommen!)
Ergänzend: Man wird hier die Binärdarstellung so kreieren:
[mm] $19=2^{N_1} [/mm] + [mm] R_1$ [/mm] mit [mm] $N_1$ [/mm] mit Eigenschaft wie oben (also [mm] $N_1=4$) [/mm] und Rest [mm] $R_1=3\,.$
[/mm]
[mm] $R_1=3=2^{N_2}+R_2$ [/mm] mit [mm] $N_2$ [/mm] analoger Eigenschaft (also [mm] $N_2=1$) [/mm] und Rest [mm] $R_2$ ($R_2=1$)
[/mm]
[mm] $R_2=1=2^{N_3}=2^0\,.$
[/mm]
Damit hat die Binärdarstellung [mm] $N_1+1=4+1=5$ [/mm] Stellen, und an den Stellen
[mm] $N_k+1$ [/mm] gehört eine 1 hin, beim Rest gehören 0en hin (aber: Wir zählen die
Stellennummern hierbei VON RECHTS NACH LINKS):
1 0 0 1 1 (Aufbau quasi: (5e Stelle, 4e Stelle, 3e Stelle, 2e Stelle, 1e Stelle))
Grund:
[mm] $N_3=0$ [/mm] bedeutet, dass an der ersten Stelle (rechts) eine 1 hinkommt.
[mm] $N_2=1$ [/mm] bedeutet, dass an der zweiten Stelle eine 1 hinkommt.
[mm] $N_1=4$ [/mm] bedeutet, dass an der 5 Stelle eine 1 hinkommt (und an der 3en und
4en Stelle muss daher, s.o., mit 0en aufgefüllt werden)
Das mal so als grobe Umrechnungsidee!
Gruß,
Marcel
|
|
|
|