www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Englisch
  Status Grammatik
  Status Lektüre
  Status Korrekturlesen
  Status Übersetzung
  Status Sonstiges (Englisch)

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
Forum "Matlab" - datei.dat plotten in Matlab
datei.dat plotten in Matlab < Matlab < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

datei.dat plotten in Matlab: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 00:52 Fr 29.01.2010
Autor: fmath

Aufgabe
Hallo,
Für mein Projekt in Mattlab; ich möchte ein par Dateien(ca 2000) mit der Endung .dat plotten. In jedem Datei befindet sich Messwerte(sehr viel). Das Problem ist befor ich ein Datei.dat plotte, muss ich vorerst eine Multiplikation zwischen diesen Messwerte machen.
Eine Datei.dat sieht ungefähr so aus: [a]Datei- Anhang
dabei muss ich in jeder Spalte A, B, C, D eine Multiplikation derart:

[mm] a\*n_{0}=a_{n_{0}} [/mm]
[mm] a\*n_{1}=a_{n_{1}} [/mm]      
[mm] a\*n_{2}=a_{n_{2}} [/mm]
[mm] a\*n_{3}=a_{n_{3}} [/mm]

[mm] \vdots [/mm]

[mm] a\*n_{9}=a_{n_{9}} [/mm]

das gleiche sollte mit der restlichen Spalte und dann soll das Ergebnis(also die [mm] a_{n_{i}}, [/mm] i = 1,2,3, [mm] \cdots, [/mm] 9) geplottet werden.

Frage:

1. Wie kann ich so eine Datei.dat, die so viel Werte enthalten mit Matlab plotten?
2. Wie sollte ich mit dieser Multiplikation vorgehen? kennt ihr vielleicht eine Art es schnell durchzuführen?
3. Könnt ihr vielleicht ein Tipps, das ganze gut und übersichlich zu machen?

Habe zwar mit Gnuplot versucht aber meine Datein entsprechen nicht der Standardformat, also es sollte formatiert werden; nur weiss nicht nicht wie.
Hättet ihr vielleicht Ideen?

Danke im Voraus
fmath

Dateianhänge:
Anhang Nr. 1 (Typ: xlsx) [nicht öffentlich]
        
Bezug
datei.dat plotten in Matlab: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 09:49 Fr 29.01.2010
Autor: Frasier

Hallo fmath,
was sind denn diese a1, a2, b1, b2 usw?
Die werden ignoriert?
lg
F.


Bezug
                
Bezug
datei.dat plotten in Matlab: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 13:14 Fr 29.01.2010
Autor: fmath

Hallo f,

die a1, a2 usw sind nicht zu beachten, die sollen einfach ignoriert werden, die sind nur Namen die im Datei stehen.

Vg
fmath

Bezug
        
Bezug
datei.dat plotten in Matlab: Antwort
Status: (Antwort) fertig Status 
Datum: 15:39 Fr 29.01.2010
Autor: Frasier

Hallo fmath,
angenommen, die Datei daten.txt sieht so aus:
3   4   5   6
99  99  99  99
99  99  99  99
1   1   1   1
4   4   1   4
7   8   6   3
8   6   5   3
9   3   6   2
3   8   2   3
2   4   5   2
0   0   0   0
Dann solltest du mit
data=load('daten.txt','-ascii');
p=zeros(size(data,1)-3,size(data,2));
for k=1:4
    p(1:end,k)=data(4:end,k)*data(1,k);
end
plot(p);
deinen Plot erstellen können.
lg
F.

Bezug
                
Bezug
datei.dat plotten in Matlab: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 18:31 Fr 29.01.2010
Autor: fmath

Hallo noch mal F,

ich versuche gerade erstmal der Datei zu laden, aber er sagt mir ständig

Error using ==> load, Number of columns on line 1 of ASCII file /home/Documents/MATLAB/Documents/smart.dat must be the same as previous lines.


Ich glaube das Problem liegt daran, dass die erste Zeile meiner Datei nicht so ganz der restliche Zeilen entspricht und es stimmt ja auch.
Was kann ich dagegen machen?

Danke für jede Bemühung.
lara

Bezug
                        
Bezug
datei.dat plotten in Matlab: Antwort
Status: (Antwort) fertig Status 
Datum: 21:40 Fr 29.01.2010
Autor: Frasier

Hallo fmath,
ja, die Fähigkeiten von load sind beschränkt; dafür ist es sehr einfach. Das klappt vor allem dann nicht, wenn Text und numerische Daten gemischt sind. Das ist dann wohl bei dir der Fall? Kannst du dann nochmal die ersten paar Zeilen deiner Datei hochladen?
Man kann der Sache dann mit textscan zu Leibe rücken.
lg
F.

Bezug
                        
Bezug
datei.dat plotten in Matlab: Antwort
Status: (Antwort) fertig Status 
Datum: 23:16 Fr 29.01.2010
Autor: Frasier

Hallo nochmal,
hier ein etwas besserer Vorschlag:
1: fid=fopen('daten.txt','rt');
2: faktoren=str2num(fgetl(fid));
3: ncols=numel(faktoren);
4: fstr=[repmat('%f',1,ncols) '\n'];
5: fseek(fid,0,'bof');
6: daten=textscan(fid,fstr','MultipleDelimsAsOne',1,'HeaderLines',3);
7: fclose(fid);
8: daten=[daten{:}];
9: plot(daten.*repmat(faktoren,size(daten,1),1));

Es ist aber wichtig, dass die erste Zeile der Datei ganz genau so viele Spalten hat, wie die Zeilen ab einschließlich der 4.
Alle (dir unbekannten) Befehle solltest du auch in der Hilfe nachschlagen.
lg
F.

Bezug
                                
Bezug
datei.dat plotten in Matlab: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 13:42 So 31.01.2010
Autor: fmath

Hallo Frasier,

es ist ja genau das Problem in diese Dateien, die erste Zeile ist total anders.
Im Anhang ein Beipiel meiner Datei:[a]Datei-Anhang.

Grüsse
fmath

Dateianhänge:
Anhang Nr. 1 (Typ: dat) [nicht öffentlich]
Bezug
                                        
Bezug
datei.dat plotten in Matlab: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 14:19 So 31.01.2010
Autor: Frasier

Hallo,
nach dem Excel-File dachte ich, die Faktoren stünden in der ersten Zeile.
Edit: Ich setzte voraus, dass du die , durch . ersetzt hast.
Versuch es mal so:
1: fid=fopen('daten.dat','rt');
2: fstr=[repmat('%f',1,13) '\n'];
3: faktoren=textscan(fid,fstr,1,'HeaderLines',2);
4: fseek(fid,0,'bof');
5: daten=textscan(fid,fstr','MultipleDelimsAsOne',1,'HeaderLines',4);
6: fclose(fid);
7: faktoren=[faktoren{:}];
8: daten=[daten{:}];
9: plot(daten.*repmat(faktoren,size(daten,1),1));

lg
F.

Bezug
                                                
Bezug
datei.dat plotten in Matlab: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 16:02 So 31.01.2010
Autor: fmath

Hi und danke nochmal,

Ich werde es mal probieren und sehen ob es läuft.

Bis dann

Bezug
                                
Bezug
datei.dat plotten in Matlab: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 19:00 Mo 01.02.2010
Autor: fmath

Hallo Frasier,

ich bin's noch mal, ich habe es probiert und es funktioniert auch. Nur was mir Sorge bereitet ist dass mein Plotaugabe nur ein einziges Bild enthaelt, obwohl ich eigentlich 13 Spalten habe. Ist es normal so?

Bezug
                                        
Bezug
datei.dat plotten in Matlab: Antwort
Status: (Antwort) fertig Status 
Datum: 19:54 Mo 01.02.2010
Autor: Frasier

Hallo,
ja, das ist normal weil ich es so programmiert habe.
Wenn du mehrere Fenster haben möchtest ist das aber auch kein Problem:
fid=fopen('daten.dat','rt');
fstr=[repmat('%f',1,13) [mm] '\n']; [/mm]
faktoren=textscan(fid,fstr,1,'HeaderLines',2);
fseek(fid,0,'bof');
legende=textscan(fid,[repmat('%s',1,13) [mm] '\n'],1,'HeaderLines',1); [/mm]
fseek(fid,0,'bof');
daten=textscan(fid,fstr','MultipleDelimsAsOne',1,'HeaderLines',4);
fclose(fid);
faktoren=[faktoren{:}];
daten=[daten{:}];
daten=daten.*repmat(faktoren,size(daten,1),1);
for k=1:13
    figure;
    plot(daten(:,k));
    title(legende{k});
end
lg
F.

Bezug
                                                
Bezug
datei.dat plotten in Matlab: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 13:21 Fr 05.02.2010
Autor: fmath

Hallo,

ich versuche seit geräumiges Zeit weiter, aber stöße auf folgendes Problem:

faktoren=textscan(fid,fstr,1,'HeaderLines',2);


bei der oben gegebene Zeile stop die mein Program, obwohl die Syntax richtig ist, was könnte der Grund dafür sein?.

Danke für eure Hilfe.

Bezug
                                                        
Bezug
datei.dat plotten in Matlab: Antwort
Status: (Antwort) fertig Status 
Datum: 15:51 Fr 05.02.2010
Autor: Frasier

Hallo,
du sagtest doch, dass es schon funktioniert hat, aber dass nur ein einzelnes Fenster kam.
Hast du dann noch was geändert?

Und irgendwie sind mir in den Code nach fstr Apostrophs reingerutscht. Die gehören da natürlich nicht hin.
Der richtige Code ist also
1: fid=fopen('daten.dat','rt');
2: fstr=[repmat('%f',1,13) '\n'];
3: faktoren=textscan(fid,fstr,1,'HeaderLines',2);
4: fseek(fid,0,'bof');
5: legende=textscan(fid,[repmat('%s',1,13) '\n'],1,'HeaderLines',1);
6: fseek(fid,0,'bof');
7: daten=textscan(fid,fstr,'MultipleDelimsAsOne',1,'HeaderLines',4);
8: fclose(fid);
9: faktoren=[faktoren{:}];
10: daten=[daten{:}];
11: daten=daten.*repmat(faktoren,size(daten,1),1);
12: for k=1:13
13:     figure;
14:     plot(daten(:,k));
15:     title(legende{k});
16: end

Klappt es damit? Oder kommt eine Fehlermeldung?
lg
F.

Bezug
                                                                
Bezug
datei.dat plotten in Matlab: Frage (überfällig)
Status: (Frage) überfällig Status 
Datum: 19:27 Mi 03.03.2010
Autor: fmath

Hallo Frasier,

sorry, aber war's wieder Prüfungszeit und ich musste erstmal mein Projekt auf Seite legen, bin aber jetzt zurück.

Ich habe ehe an der vorleletzte Version bischen was geändert und es hat funktioniert. Nun habe ich  folgendes Problem:
Ich habe es so programmiert, dass das programm die geplotteten Ausgabe direkt gedruckt wird(also, an einem Drucker), es ist aber so, dass die Daten(1-13), die auf einem A4 gedruckt wird zu nah an einander sind.
Ich habe bis lang nur den A4 als "Landscape" ändern können.
. wie könnte ich die Größe der Bilder ändern oder beziehungsweise der Abstand zwischen einzelnen geplotteten Bilder  manuel vergrössern?

hast  du oder Jemand vielleicht eine Idee?
Lg

Bezug
                                                                        
Bezug
datei.dat plotten in Matlab: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 20:20 Do 18.03.2010
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


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