matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Schulmathe
  Status Primarstufe
  Status Mathe Klassen 5-7
  Status Mathe Klassen 8-10
  Status Oberstufenmathe
    Status Schul-Analysis
    Status Lin. Algebra/Vektor
    Status Stochastik
    Status Abivorbereitung
  Status Mathe-Wettbewerbe
    Status Bundeswettb. Mathe
    Status Deutsche MO
    Status Internationale MO
    Status MO andere Länder
    Status Känguru
  Status Sonstiges

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenMatlabSortierung einer .txt-Datei
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Philosophie • Religion • Kunst • Musik • Sport • Pädagogik
Forum "Matlab" - Sortierung einer .txt-Datei
Sortierung einer .txt-Datei < Matlab < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Sortierung einer .txt-Datei: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 14:08 Do 23.05.2013
Autor: Nicky92

Aufgabe
Für diese Aufgabe wird die folgende Datei benötigt: „Names.txt“. Diese Textdatei enthält über 5000
Vornamen. Beginnen Sie damit, die Namen alphabetisch zu sortieren. Anschließend ermitteln Sie den
alphabetischen Wert jedes Namens und multiplizieren diesen mit der Position in der Liste, um die Punktzahl
des Namens zu finden.
Beispiel:
Wenn die Liste alphabetisch sortiert ist, ist COLIN der 938ste Name. Der Wert des Namens ist
3+15+12+9+14=53
Die Punktzahl ist also
938∗53=49714
a) Wie groß ist die Summe aller Punktzahlen in der Datei?

Hallo,

ich verzweifele gerade an der Aufgabe :-(
Hier mein  Ansatz:


___________________________________________

    tic               %beginn der Zeitmessung

     textscan('Names.txt', '%s');
     Names = sort(Names);

    n = length(Names);
    res = 0;

    for i = 1:n
        c = char(Names(i));
        d = double(c)-ones(1, length(double(c)))*64;
        res = res+sum(d)*i;
    end

    res
    toc               %ende der Zeitmessung
end
__________________________________________

>>>Matlab spuckt mit immer diesen Fehler aus:

??? Undefined function or variable "Names".

Error in ==> Summe at 8
     Names = sort(Names);

Ich hab schon fast alles Ausprobiert, den Befehl "sort" so anzuwenden, dass ich die Text-Datei sortieren kann :-(
Bin allerdings auch kein Programmier-Genie.

Kann mir jemand sagen, wo mein Fehler liegt?






Dateianhänge:
Anhang Nr. 1 (Typ: txt) [nicht öffentlich]
        
Bezug
Sortierung einer .txt-Datei: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 16:02 Do 23.05.2013
Autor: QCO

Diese Aufgabe ist die deutsche Übersetzung von aufgabe 22 des Euler-Projekts (http://projecteuler.net/problem=22). Du willst hier doch nicht etwa schummeln? :-/

Bezug
                
Bezug
Sortierung einer .txt-Datei: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 18:49 Do 23.05.2013
Autor: Nicky92

Ums schummeln geht es mir nicht,
aber man sollte im Rahmen seiner Informatikveranstaltung, die Übungsufgaben bearbeiten, die einem gestellt werden um den Anschluss nicht zu verlieren :-P  

Ist aber mal Interessant zu sehen, wo die Hochschule ihre Aufgaben
her nimmt...vlt sehe ich da noch mehr parallelen...

Habe, deinen Tip angewendet und musste leider feststellen, dass es
einen weiteren Fehler gibt:

?? Error using ==> sort
Input argument must be a cell array of strings.

Error in ==> Summe at 8
     Names = sort(Names);
_____________________________________________

Kann es sein, dass der Befehl "sort" in der Matlab-Version 7.12 andere Syntax hat?


Bezug
                        
Bezug
Sortierung einer .txt-Datei: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 23:47 Do 23.05.2013
Autor: QCO

Hallo, wenn du weitere Nachfragen hast, wäre es gut diese auch in dem System hier als Frage zu stellen und nicht als Mitteilung. Denn nur dann werden die Leute auch reinschauen.

Zum Problem mit sort:
wenn es noch um den obigen Code geht, dann hast du noch ein Problem, bevor es überhaupt ans sortieren geht.
Lass dir mal anzeigen, was
Names = textscan('Names.txt', '%s');
überhaupt produziert. Ich habe dich bisher nur auf einen Teil des Problems hingewiesen; die Zeile macht noch nicht das, was du willst.

Tipp: Wenn man eine Befehlszeile mit Matlab nicht mit einem Semikolon abschließt, wird die Rückgabe des Befehls angezeigt.
Also führ mal
Names = textscan('Names.txt', '%s')
aus und schau dir im Workspace an, was da eigentlich in Names gespeichert wird...

Bezug
                                
Bezug
Sortierung einer .txt-Datei: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 13:51 Fr 24.05.2013
Autor: Nicky92

In Names speichert er mit dem Befehl "textread" gar nichts,
habe aber auf anraten eines Bekannten den Befehl "textread" mal ausprobiert und schwupps,es Funktioniert :-)

Jetzt speichert er in Names alle Namen aus der .txt.-Datei und sortiert sie
anschließend alpabetisch an.

War es das, worauf du hinaus wolltest?



__________________________________________
Names = textread('Names.txt', '%s') %Liest die Namen ein
Names =sort(Names)                  %Sortiert die Namen alphbetisch


fid = [mm] fopen('Names_5.txt','w'); [/mm]     %Öffnet eine neue Text-Datei

fwrite(fid,Names);                  %Schreibt in die neue Datei

fclose(fid);                        %Schließt die neue Datei

end

__________________________________________
Als nächstes möchte ich alle Namen in eine neue txt.-Datei speichern.

Ich bekomme die geordneten Namen nicht in die neue Datei geschrieben, geordnet bekomme ich sie aber...

Es stockt bei dem fwrite(fid,Names)





Habe nach mühseliger recherche den Fehler endeckt :-)

Names = textread('Names.txt', '%s');
s = sort(Names);                

fid = [mm] fopen('Names_5.txt','wt'); [/mm]    

[mm] fprintf(fid,'%s\n' [/mm] ,s{:});                                  

fclose(fid);


Jetzt beleibt nur noch herrauszufinden, wie ich die die Namen eingrenzen kann, sodass ich nur die Namen mit 4 Buchstaben in der Datei ausgebe

Bezug
                                        
Bezug
Sortierung einer .txt-Datei: Antwort
Status: (Antwort) fertig Status 
Datum: 01:50 Sa 25.05.2013
Autor: JamesDean

Guten Abend Nicky,

Ich glaube der richtige Code sieht folgendermaßen aus:


clear

    Names = textread('Names.txt', '%s');
    
    s = sort(Names);                

    fid = fopen('Names _ 5.txt','wt');    


    fprintf(fid,'%s\ n' ,s{:});    
    

    fclose(fid);

  
end  

Jetzt fehlt nur noch eine "Fallunterscheidung" also ist der String größer oder kleiner als 5 Zeichen, um ihn dann entsprechend der Aufgabenstellung der Textdatei zu zuordnen.
Vermutlich musst du den String jetzt erstmal mit dem Befehl int5 auf 5 Bit reduzieren und anschließend den Befehl fscanf benutzen der folgendermaßen definiert ist: fscanf(fid,format,(,Zahl))


Mit freundlichen Grüßen

J.DEan







Bezug
        
Bezug
Sortierung einer .txt-Datei: Antwort
Status: (Antwort) fertig Status 
Datum: 16:07 Do 23.05.2013
Autor: QCO

Problem ist folgende Zeile:
textscan('Names.txt', '%s');
Wie die Code-Beispiele unter http://www.mathworks.de/de/help/matlab/ref/textscan.html
auch zeigen, musst du die Rückgabe von textscan erstmal irgendwie in eine Variable speichern, also
Names = textscan('Names.txt', '%s');
dann kannst du auch sort darauf anwenden.

Bezug
        
Bezug
Sortierung einer .txt-Datei: Frage (reagiert)
Status: (Frage) reagiert/warte auf Reaktion Status 
Datum: 15:27 Sa 25.05.2013
Autor: Nicky92

Hallo Leute,
erstmal danke für eure Tips und Anregungen!
Und entschuldigt das durcheinander...

Ich bräuchte nochmal ein wenig Unterstützung
bei der Fallunterscheidung für folgendes Programm.

Ich möchte die Namen aus einer Textdatei, die
aus 4 Buchstaben bestehen, in eine neue Textdatei speichern.
Alle anderen Namen sollen entfallen.

Ich hab leider gar kein Ansatz für die Fallunterscheidung :-(





Bezug
                
Bezug
Sortierung einer .txt-Datei: Antwort
Status: (Antwort) fertig Status 
Datum: 12:47 So 26.05.2013
Autor: QCO

Ich verweise mal auf meinen Vorschlag im Parallel-Thread:
https://vorhilfe.de/read?i=968847

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.schulmatheforum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]