www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 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
Forum "Matlab" - einlesen von daten
einlesen von daten < Matlab < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

einlesen von daten: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 16:10 Di 23.10.2007
Autor: tundrablume

Aufgabe
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.


Nach dem einem Lokalsender, off air, die Staumeldungen gefallen hatten,
sollen Sie nun die Funktionalität jener Funktion erweitern. Die Ausgangsdaten, so wie
die stündlichen Änderungen kommen per email und werden im ASCII-format gespeichert,
siehe Kurswebseite: Ausgangsdaten.txt und Mitteilung1.txt bis Mitteilung3.txt.
Schreiben Sie eine Funktion Neue Mitteilungen(name), die die Daten aus der Datei name
einliest und als Struktur zurück gibt. So dann schreiben Sie eine Funktion Stauaende-
rung(Meldungen,Aenderungen), die veraltete Meldungen herausnimmt, Alte aktualisiert
und Neue einf¨ugt. Dabei sei eine Meldung veraltet, wenn seit 3 Stunden oder mehr keine Änderung, bzw. Bestätigung der Meldung eingetroffen ist. Ferner ist eine Meldung veraltet, wenn die Autobahn wieder frei ist. Das Resultat von Stauänderungen sei wiederum eine Struktur mit den notwendigen Daten.

Hi,
ich muss diese Aufgabe bis Freitag gelöst habe und ich sitze seit 1 Woche dran und komme einfach nicht weiter. Die Mitteilungen sind uns als txt gegeben. Ich weiß einfach nicht, wie ich diese Daten jetzt abspeichern soll, damit ich diese dann abrufen kann.

Ich hab es versucht die Mitteilungen gemeinsam in einer m-Datei zu speichern und die dann mit folgendem Befehl abzurufen, aber das funktioniert irgendwie nicht.

%function-file: Daten
function[] = Neue_Mitteilungen(name)

fid = fopen(name,'r');
scan = fscanf(fid,'%c')
fclose(fid);



Kann mir irgenwer bitte helfen.  :(

        
Bezug
einlesen von daten: Antwort
Status: (Antwort) fertig Status 
Datum: 19:27 Di 23.10.2007
Autor: Martin243

Hallo,

> Die Mitteilungen sind uns als txt gegeben.

Hättest du die hier angehängt, könnten wir uns eher ein Bild vom Format machen.

> Ich weiß einfach nicht, wie ich diese Daten jetzt abspeichern soll, damit ich diese dann abrufen kann.

Die sind doch schon in einer Datei. Wozu also nochmal speichern? Oder meinst du nach einer Änderung?
Warum nicht einfach im Klartext?

Mehr Informationen bitte.


Gruß
Martin



Bezug
                
Bezug
einlesen von daten: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 09:57 Do 25.10.2007
Autor: tundrablume

Die Mitteilungen sehen ungefähr so aus:

%% Datenmaterial für die Abschlussaufgabe 2007
12Uhr5  A5 Kassel - Friedberg : 4km
12Uhr16 A5 Friedberg - Kassel : 8km
12Uhr27 A5 Frankfurt-Friedberg : 12km
12Uhr39 A45 Hanau-Giessen : 2km
12Uhr41 A5 Darmstadt - Frankfurt : 2km
12 Uhr 47 A3 Wiesbaden - Frankfurt :3km
12 Uhr 51 A3 Aschaffenburg - Frankfurt : 2km


Was ich bisher hab ist folgendes:

%function-file: Einlesen
function[] = Neue_Mitteilungen(name)

fid = fopen(name,'r');
scan = fscanf(fid,'%c')
fclose(fid);


while length(scan>1)
[token, scan] = strtok(scan, char(10));
[Zeit Autobahn von nach Strecke]=strread(token, ' %s %s %s %s %s','delimiter', ' -:');

struct('Zeit',[Zeit],'Autobahn',[Autobahn],'von',[von],'nach',[nach],'Strecke',[Strecke])

end


Jetzt weiß ich nur nicht wie die Einträge gelöscht  und aktualisiert werden können. Mit dem folgenden Ausdruck komm ich gar nicht weiter:

Neue_Mitteilungen=[name(1:i-1),name(i+1:end)]

Bezug
                        
Bezug
einlesen von daten: Antwort
Status: (Antwort) fertig Status 
Datum: 16:23 Do 25.10.2007
Autor: Martin243

Hallo,

ich denke, so kommst du nicht weiter.

Zu Neue_Meldungen:
Lies die Datei zeilenweise ein, das erspart Verwechslungen zwischen den Zeilen. Es geht mit fgetl.
Wie du siehst, ist das Format nicht ganz sauber. Mal sind Leerzeicheneingestreut, mal nicht. Das macht alles kaputt, wenn man einfach Tokens mit Trennzeichen erzeugt. Hier wären Regular Expressions angebracht. Die gibt es mit regexp.
Nach der Abarbeitung jeder Zeile musst du die erhaltenen Daten in deine Struktur schreiben. Dazu solltest du dir mal die Hilfe zu structs ansehen.
Es geht aber in etwas so:
meldungen(index).zeit = ...
meldungen(index).autobahn = ...
meldungen(index).von = ...
meldungen(index).nach = ...
meldungen(index).laenge = ...

Dann gibst du genau diese Struktur meldungen zurück.


Zu Stauänderungen:
Du gehst durch die Struktur (mit einem Index, s.o.) und schaust, ob es neuere Meldungen gibt, die in autobahn, von und nach übereinstimmen. Falls ja, ersetzt du deren zeit und laenge.
Wie sollen denn freie Autobahnen signalisiert werden? Mit '0km' oder mit 'frei'? Das müsste man ggf. bei Neue_Meldungen berücksichtigen.
Wenn man die alten Meldungen mit den Änderungen abgeglichen hat, hängt man die übrigen Änderungen dahinter.
Schließlich löscht man noch die, die älter als 3 Stunden sind, per:
if aktuelleZeit - neueMeldungen(i).zeit > 180, %in Minuten
  neueMeldungen(i) = [];
end;

Lies dir mal die Hilfen durch und melde dich ggf. nochmal.

Gruß
Martin

Bezug
                                
Bezug
einlesen von daten: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 18:26 Fr 26.10.2007
Autor: tundrablume

Ganz ganz vielen Dank für deine Mühe und Hilfe. Hat mir sehr weitergeholfen.

Liebe Grüße
Cindy

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


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]