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 Hochschulmathe
  Status Uni-Analysis
    Status Reelle Analysis
    Status UKomplx
    Status Uni-Kompl. Analysis
    Status Differentialgl.
    Status Maß/Integrat-Theorie
    Status Funktionalanalysis
    Status Transformationen
    Status UAnaSon
  Status Uni-Lin. Algebra
    Status Abbildungen
    Status ULinAGS
    Status Matrizen
    Status Determinanten
    Status Eigenwerte
    Status Skalarprodukte
    Status Moduln/Vektorraum
    Status Sonstiges
  Status Algebra+Zahlentheo.
    Status Algebra
    Status Zahlentheorie
  Status Diskrete Mathematik
    Status Diskrete Optimierung
    Status Graphentheorie
    Status Operations Research
    Status Relationen
  Status Fachdidaktik
  Status Finanz+Versicherung
    Status Uni-Finanzmathematik
    Status Uni-Versicherungsmat
  Status Logik+Mengenlehre
    Status Logik
    Status Mengenlehre
  Status Numerik
    Status Lin. Gleich.-systeme
    Status Nichtlineare Gleich.
    Status Interpol.+Approx.
    Status Integr.+Differenz.
    Status Eigenwertprobleme
    Status DGL
  Status Uni-Stochastik
    Status Kombinatorik
    Status math. Statistik
    Status Statistik (Anwend.)
    Status stoch. Analysis
    Status stoch. Prozesse
    Status Wahrscheinlichkeitstheorie
  Status Topologie+Geometrie
  Status Uni-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. Deutsch • Englisch • Französisch • Latein • Spanisch • Russisch • Griechisch
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.unimatheforum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]