Werte zählen < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Aufgabe | Finde die Zahlen in dem Vektor x, die genau drei mal vorkommen und
speichere sie in einem neuen Vektor (sortiert von klein nach groß).
x = [1 2 5 2 2 7 8 3 3 1 3 8 8 8
Ergebnis: y = [2 3] |
So, nun aber HOFFENTLICH erstmal meine letzte Frage: Hatte die Idee, den Vektor zu plotten, aber wie dann weiter?? Jetzt kann ich zwar sehen, welche Zahlen 3-mal vorkommen, aber das soll ja Matlab machen und nicht ich! Hier mein bisheriger Ansatz:
hist(x,unique(x))ein Diagramm erstellen ......UND DANN????
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt
|
|
|
|
Hallo,
so wie es aussieht, stehen im Vektor x ja nur natürliche Zahlen.
Für diesen Fall gibt es eine einfache Lösung:
Man definiert einen Hilfsvektor h, in dem man für jede natürliche Zahl (die in x auftaucht) speichert, wie oft sie in x vorkommt. Dazu geht man den Vektor x Element für Element mit einer while-Schleife durch (Ein nützlicher Befehl ist hierbei: length(x) ) Wenn [mm] x_{i} [/mm] = n wird [mm] h_{n} [/mm] um eins erhöht.
Anschließend muss man h Element für Element durchgehen. Wenn gilt [mm] h_{i} [/mm] = 3, dann schreibt man die Zahl i in den Vektor y. y ist dann schon automatisch nach Größe sortiert.
Grüße und gutes Gelingen
|
|
|
|