Dynamischedatei einlesen < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 17:23 So 13.05.2007 | Autor: | hans1211 |
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Ich habe eine Datei (text), diese ändert sich.
Meine Frag ist wie ich Matlab beibringe diese Datei einzulesen.
Die Datei besteht aus 4 Teilen.
Die einzelnen Teile sind durch [XXX] getrennt.
Meine Frage ist nun wie kann ich Matlab dazu bringen die Textdatei einzulesen.
Der Vorteil ist die Blöcke sind in sich einheitlich...
Also müsste mein m.file nur die Blöcke ausfindig machen und dazwischen Variablen einlesen.
Eine Statische Version habe ich auch schon hinbekommen, aber das ist es halt nicht. Die Blöcke können halt größer oder kleiner sein.
Beispiel für Datei:
[Netzplan]
Name=Name
AnzKnot=26
AnzAkt=30
AnzStat=6
AnzSim=100
Zufall=1000
[Knoten]
1= 1,S,D,
2= 2,O,D,
3= 3,A,P,
4= 4,A,P,
5= 5,A,D,
6= 6,A,D,
7= 7,A,D,
8= 8,A,P,
9= 9,A,D,
10= 10,A,P,
11= 11,A,P,
12= 12,A,P,
13= 13,A,D,
14= 14,A,P,
15= 15,A,P,
16= 16,A,P,Absatz
17= 17,O,E,Absatz niedrig
18= 18,O,E,Absatz hoch
19= 30,O,A,Abbruch Idee
20= 31,O,A,Abbruch Forschung
21= 32,O,A,Abbruch Verkauf des Wissens
22= 33,O,A,Abbruch Finanzierung
23= 34,O,A,Abbruch Produktion
24= 35,O,A,Abbruch schwacher Markt
25= 36,O,A,Abbruch Produktregistrierung
26= 37,O,A,Abbruch Produktion
[Aktivitäten]
1= 1, 1, 2,100,N, 53, 78, 56,Grundlagenforschung
2= 2, 2, 3,100,N, 18, 30, 21,Ideensuche
3= 3, 3, 4, 85,N, 24, 42, 27,Forschung
4= 4, 4, 5, 85,N, 0, 0, 0,Dummy
5= 5, 5, 6,100,N, 16, 27, 20,Technische Studien
6= 6, 5, 7,100,N, 20, 30, 27,Ökonomische Studien
7= 7, 8, 9, 80,N, 12, 24, 16,Fertigung und Test Prototyp
8= 8, 9, 10,100,N, 21, 45, 24,Kapitalbeschaffung
9= 9, 9, 11,100,N, 48, 75, 53,Anlagengenehmigung
10= 10, 11, 12, 95,N, 30, 45, 34,Anlagenfertigstellung
11= 11, 12, 13, 95,N, 15, 21, 16,Produktion Nullserie
12= 12, 13, 14,100,N, 30, 48, 32,Produktregistrierung
13= 13, 13, 15,100,N, 0, 0, 0,Produkteinführung
14= 14, 6, 8,100,N, 0, 0, 0,
15= 15, 7, 8,100,N, 0, 0, 0,
16= 16, 10, 12, 95,N, 0, 0, 0,
17= 17, 14, 16, 90,N, 0, 0, 0,Produktion und Absatz
18= 18, 15, 16, 97,N, 30, 48, 32,Produktion und Absatz
19= 19, 1, 2,100,N, 60, 78, 64,Parallelforschung
20= 20, 1, 2,100,N, 60, 78, 64,Parallelforschung
21= 21, 16, 17, 60,N, 0, 0, 0,Absatz niedrig
22= 22, 16, 18, 40,N, 0, 0, 0,Absatz hoch
23= 30, 3, 30, 15,N, 0, 0, 0,Idee verworfen
24= 31, 4, 31, 15,N, 0, 0, 0,Abbruch Forschung
25= 32, 8, 32, 20,N, 0, 0, 0,Verkauf des Wissens
26= 33, 10, 33, 5,N, 0, 0, 0,Abbruch wegen fehlender Finanzierung
27= 34, 11, 34, 5,N, 0, 0, 0,Abbruch Investition
28= 35, 15, 35, 3,N, 0, 0, 0,Abbruch wegen schwachem Markt
29= 36, 14, 36, 10,N, 0, 0, 0,Abbruch Produktregistrierung
30= 37, 12, 37, 5,N, 0, 0, 0,Abbruch Produktion
[Statistikknoten]
1= 3, 0, 500, 10
2= 4, 0, 500, 10
3= 16, 0, 1000, 10
4= 17, 280, 400, 12
5= 18, 280, 400, 12
6= 30, 0, 500, 10
Danke für die Hilfe.
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 13:38 Mo 04.06.2007 | Autor: | hans1211 |
Habe mir die Frage selbst beantwortet!
Nehme jetzt die Datei teile sie mit Matlab in vier Teile, lese diese dann ein und lösche danach die Hilfsdateien.
Trotzdem danke für die Mühe.
|
|
|
|
|
Moin hans1211!
Ich frage mich, warum Du eine Textdatei einlesen lassen willst, welche in einzelne Blöcke unterteilt ist.
Wer schreibt denn so eine Textdatei?
Warum erstellst Du die Datei nicht als Excel-Tabelle und liest die in Matlab ein. Der Befehl dafür ist xlsread, die Syntax lautet:
z = xlsread('filename.xls')
Der array z enthält dann den kompletten Inhalt des Standard-Tabellenblattes (normaler Weise das erste).
Zusätzlich können hinter dem Dateinamen (mit Kommata abgetrennt) die Tabellenblätter ('sheet') und auch bestimmte Bereiche ('range') eines Tabellenblattes angegeben werden.
Der Parameter -1 fordert den Anwender bei jedem Einlesen zur interaktiven Auswahl des Tabellenbereiches auf.
Inwiefern der Befehl auch Text aus der Tabelle einliest, mußt Du ausprobieren.
Vielleicht gefällt Dir diese Variante ja auch. Gruß, Marx.
|
|
|
|