www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Vorhilfe
  Status Geisteswiss.
    Status Erdkunde
    Status Geschichte
    Status Jura
    Status Musik/Kunst
    Status Pädagogik
    Status Philosophie
    Status Politik/Wirtschaft
    Status Psychologie
    Status Religion
    Status Sozialwissenschaften
  Status Informatik
    Status Schule
    Status Hochschule
    Status Info-Training
    Status Wettbewerbe
    Status Praxis
    Status Internes IR
  Status Ingenieurwiss.
    Status Bauingenieurwesen
    Status Elektrotechnik
    Status Maschinenbau
    Status Materialwissenschaft
    Status Regelungstechnik
    Status Signaltheorie
    Status Sonstiges
    Status Technik
  Status Mathe
    Status Schulmathe
    Status Hochschulmathe
    Status Mathe-Vorkurse
    Status Mathe-Software
  Status Naturwiss.
    Status Astronomie
    Status Biologie
    Status Chemie
    Status Geowissenschaften
    Status Medizin
    Status Physik
    Status Sport
  Status Sonstiges / Diverses
  Status Sprachen
    Status Deutsch
    Status Englisch
    Status Französisch
    Status Griechisch
    Status Latein
    Status Russisch
    Status Spanisch
    Status Vorkurse
    Status Sonstiges (Sprachen)
  Status Neuerdings
  Status Internes VH
    Status Café VH
    Status Verbesserungen
    Status Benutzerbetreuung
    Status Plenum
    Status Datenbank-Forum
    Status Test-Forum
    Status Fragwürdige Inhalte
    Status VH e.V.

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
Dt. Schulen im Ausland: Mathe-Seiten:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
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.vorhilfe.de