|
|
prozedur schreiben mit tabelle |
|
Toile87 |
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 13.09.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.09.2009, 10:33
Titel: prozedur schreiben mit tabelle
|
|
Hey ihr
Ich habe folgende Aufgabe:
(8.3) Schreiben Sie eine Prozedur, die zu einer Liste (beliebiger Länge) von (zufälligen) Zahlen aus der Menge 1 bis 6 eine Tabelle mit einer relativen Häufigkeitsverteilung dieser Zahlen ausgibt.
Diese Liste bekommt man ja durch:
L:=[random(1..6) () $ i=1..50]
Ich dachte mir, ich nehm dann einfach statt 1 und 50 x und y, aber das hier: L:=[random(1..6) () $ i=x..y] will Matlab iwie nicht annehmen woran liegt das?
Und ich weiß auch nicht, wie ich den Rest der Aufgabe hinkriegen soll.
Ich hatte bisher das hier:
F:=proc(x,y)
begin
T:= for i in L do
T[i] := T[i] + 1;
end_for:
T
end_proc
Aber irgendwie haut das alles nicht hin Kann mir da jemand helfen?
Lieben Dank schonmal
|
|
|
|
|
Sani |
Forum-Anfänger
|
|
Beiträge: 32
|
|
|
|
Anmeldedatum: 03.09.09
|
|
|
|
Wohnort: Neu-Ulm
|
|
|
|
Version: R2007b
|
|
|
|
|
|
Verfasst am: 15.09.2009, 12:26
Titel:
|
|
|
|
|
Hallo Toile87,
irgendwie sieht dein Code aus als wäre er in Delphi / Pascal geschrieben, aber definitiv hab ich sowas in MatLab noch nicht gesehen ^^
Ich hab ne Lösung für dich erstellt, kann man bestimmt noch optimieren aber funktioniert so:
Zur Erklärung:
gibt die eine Zufallszahl zwischen 0 und 1 aus. Die Parameter sagen, dass es 100 Werte in einer Spalte sein sollen.
Multipliziert mit 5 ergeben das Werte zwischen 0 und 5.
rundet mathematisch richtig auf den naheliegenden Integerwert
Da wir Werte zwischen 1..6 und nicht 0..5 haben wollen addieren wir +1
sortiert die Liste aufwärts gerichtet
ermittelt die Größe der Liste (Anzahl der Einträge)
A ist der Aufbau der "Lösungstabelle" mit noch 6 Nullen, die vom Ergebnis ersetzt werden.
Dann eine Schleife und eine If-Bedingung - dürfte selbsterklärend sein.
den letzten Wert muss man dann "manuell" in die Lösungsmatrix schreiben, warum weiss ich auf die schnelle jetzt nicht.
Wenn man sich den ganzen Schreibkram sparen möchte kann man auch einfach
eingeben und Matlab spuckt ein fertiges Diagramm aus...
Den Inhalt kann man auch auslesen mit
da stehen aber noch ein paar Nullen drin die ich auf die schnelle nicht rausbekommen hab.
Hoffe ich konnte helfen!
Greez
Sani
|
|
|
Sani |
Forum-Anfänger
|
|
Beiträge: 32
|
|
|
|
Anmeldedatum: 03.09.09
|
|
|
|
Wohnort: Neu-Ulm
|
|
|
|
Version: R2007b
|
|
|
|
|
|
Verfasst am: 15.09.2009, 12:32
Titel:
|
|
achso
wenn das eine function mit Rückgabewert werden soll muss man natürlich den Funktionskopf noch ergänzen(es empfiehlt sich alle clear und close-befehle zu entfernen ):
wobei A die Matrix der Rückgabewerte ist und L die Liste wo du bekommst.
Aufgerufen wird dann Folgendermasen:
dein m-File solltest du dann auch haeufigkeit.m nennen.
Greez
|
|
|
Toile87 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 13.09.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.09.2009, 11:10
Titel:
|
|
ui, das muss ich mir erstmal alles im detail angucken. Ganz ganz lieben Dank!!!!
|
|
|
|
|
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.
|
|