WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Messobjekte (Textdatei) einlesen und plotten

 

A.E.
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 03.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.01.2012, 15:05     Titel:
  Antworten mit Zitat      
Hallo zusammen,

ich als verzweifelter Anfänger und das nicht nur in MatLab sondern auch im der Allgemeinen Programmierung, versuche gerade ein Programm zu schreiben.

da wollte ich mal nachfragen wie ich über MatLab verschiede positionen eines Messobjekts einlesen und plotten kann......also ich habe eine Reihe von Messergebnissen in Form einer Textdatei.

Vielen Dank für eure Hilfe
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.01.2012, 15:17     Titel:
  Antworten mit Zitat      
Hallo,

dazu kannst du gut den Befehl TEXTSCAN verwenden.
Code:


Wenn dir die Dokumentation und insbesonderen die Beispiele darin nicht weiterhelfen, poste doch einen Ausschnitt der einzulesenden Textdatei.

Grüße,
Harald

P.S.: Wenn es keinen direkten Zusammenhang gibt, ist das Erstelen eines neuen Themas wohl besser.

Edit by Martin: Hab den Beitrag mal separiert.
Private Nachricht senden Benutzer-Profile anzeigen
Gesplittet: 03.01.2012, 15:31 Uhr von Martin
Von Beitrag Messwerte grafisch darstellen aus dem Forum Grafiken und Plots
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.01.2012, 17:51     Titel:
  Antworten mit Zitat      
Hallo,

ich bezweifle, dass das die vollständige Fehlermeldung ist.
Poste bitte immer die vollständige Fehlermeldung.

Hier dürfte das Problem einfach sein, dass du den Dateinamen als String angeben musst:
Code:
id = fopen('test_0001.txt');


Das geht aber auch aus sämtlichen Beispielen in der Doku klar hervor.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
A.E.
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 03.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.01.2012, 14:20     Titel:
  Antworten mit Zitat      
Vielen Dank für die Antwort,

bin jetzt um einiges weiter gekommen und stoße auch schon auf das nächste Problem:
Das Programm läuft, jedoch benötige ich


1.eine Vereinfachung der Darstellung, bin die ganze Zeit darüber am nachdenken wie ich das in eine Schleife packe, leider ohne Erfolg.
Wie man sehen kann wiederholt sich das meißte.

2.das wäre der Code für eine Messung zum Zeitpunkt t=0, und möchte das jetzt irgendwie so realisieren, dass ich nicht jedesmal den gesamten einlese und plot Prozess durchlaufen muss, wenn ich Messungen für t=1 bis t=n habe

Code:

fid = fopen('QuaderStart.txt');
Startpunkte = textscan(fid, '%s %f32 %f32 %f32 %f32 %f32 %f32 %f32 %f32');
fclose(fid);

p1t0 = Startpunkte{2};
p2t0 = Startpunkte{3};
p3t0 = Startpunkte{4};
p4t0 = Startpunkte{5};
p5t0 = Startpunkte{6};
p6t0 = Startpunkte{7};
p7t0 = Startpunkte{8};
p8t0 = Startpunkte{9};


figure
hold on
grid on

plot3(p1t0(1),p1t0(2),p1t0(3),'g*')
plot3(p2t0(1),p2t0(2),p2t0(3),'g*')
plot3(p3t0(1),p3t0(2),p3t0(3),'g*')
plot3(p4t0(1),p4t0(2),p4t0(3),'g*')
plot3(p5t0(1),p5t0(2),p5t0(3),'g*')
plot3(p6t0(1),p6t0(2),p6t0(3),'g*')
plot3(p7t0(1),p7t0(2),p7t0(3),'g*')
plot3(p8t0(1),p8t0(2),p8t0(3),'g*')

plot3([p1t0(1) p2t0(1)], [p1t0(2) p2t0(2)], [p1t0(3) p2t0(3)])
plot3([p2t0(1) p3t0(1)], [p2t0(2) p3t0(2)], [p2t0(3) p3t0(3)])
plot3([p3t0(1) p4t0(1)], [p3t0(2) p4t0(2)], [p3t0(3) p4t0(3)])
plot3([p4t0(1) p1t0(1)], [p4t0(2) p1t0(2)], [p4t0(3) p1t0(3)])

plot3([p5t0(1) p6t0(1)], [p5t0(2) p6t0(2)], [p5t0(3) p6t0(3)])
plot3([p6t0(1) p7t0(1)], [p6t0(2) p7t0(2)], [p6t0(3) p7t0(3)])
plot3([p7t0(1) p8t0(1)], [p7t0(2) p8t0(2)], [p7t0(3) p8t0(3)])
plot3([p8t0(1) p5t0(1)], [p8t0(2) p5t0(2)], [p8t0(3) p5t0(3)])

plot3([p1t0(1) p5t0(1)], [p1t0(2) p5t0(2)], [p1t0(3) p5t0(3)])
plot3([p2t0(1) p6t0(1)], [p2t0(2) p6t0(2)], [p2t0(3) p6t0(3)])
plot3([p3t0(1) p7t0(1)], [p3t0(2) p7t0(2)], [p3t0(3) p7t0(3)])
plot3([p4t0(1) p8t0(1)], [p4t0(2) p8t0(2)], [p4t0(3) p8t0(3)])


axis([0,300,0,300,0,300])
title('Quader t=0')
xlabel('x')
ylabel('y')
zlabel('z')
view([30,30])
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.01.2012, 15:06     Titel:
  Antworten mit Zitat      
Hallo,

zu 1.: da hast du dir das Leben selbst schwer gemacht. Ich kanns natürlich nicht ausprobieren, aber etwas folgender Art sollte gehen:

Code:
fid = fopen('QuaderStart.txt');
S = textscan(fid, '%s %f32 %f32 %f32 %f32 %f32 %f32 %f32 %f32');
fclose(fid);

figure
hold on
grid on
for I = 2:9
    plot3(S{I}(1),S{I}(2),S{I}(3),'g*')
end

for I=1:4
    J = mod(I, 4) + 1;
    plot3([S{I}(1) S{J}(1)], [S{I}(2) S{J}(2)], [S{I}(3) S{J}(3)])
end


zu 2.: du musst irgendwie herausfinden, welcher Teil der Datei für dich interessant ist. Wenn du das vorab weißt, kannst du mit der Option 'Headerlines' eine bestimmte Anzahl Zeilen am Anfang der Datei überspringen. Andernfalls kannst du zeilenweise mit FGETL einlesen, um zu bestimmen, wann der relevante Teil beginnt.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
A.E.
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 03.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.01.2012, 14:04     Titel:
  Antworten mit Zitat      
Vielen vielen Dank Harald,....das erleichtert die Sache natürlich erheblich.

Die erste for Schleife läuft einwandfrei nur spuckt er mir durch die zweite Schleife folgenden Fehler aus, den ich jedoch nicht nachvollziehen kann, da du alles berücksichtigt hast......


Code:


%% Zeitpunkt t=0
fid = fopen('QuaderStart.txt');
S= textscan(fid, '%s %f32 %f32 %f32 %f32 %f32 %f32 %f32 %f32');
fclose(fid);

figure
hold on
grid on

for I = 2:9
    plot3(S{I}(1),S{I}(2),S{I}(3),'g*')
end

for I=1:4
    J = mod(I,4) + 1;
    plot3([S{I}(1) S{J}(1)], [S{I}(2) S{J}(2)], [S{I}(3) S{J}(3)])
end



axis([0,300,0,300,0,300])
title('Quader t=0')
xlabel('x')
ylabel('y')
zlabel('z')
view([30,30])

 


Fehlermedlung:

Error in ==> QuaderStartpunkt at 16
plot3([S{X}(1) S{J}(1)], [S{X}(2) S{J}(2)], [S{X}(3) S{J}(3)])
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.01.2012, 14:16     Titel:
  Antworten mit Zitat      
Hallo,

bitte die komplette Fehlermeldung kopieren. Es hilft wenig, zu wissen, wo der Fehler auftritt, wenn man nicht weiß, was der Fehler ist.

Vielleicht kannst du auch selbst versuchen, mit dem Debugger dem Problem auf die Spur zu kommen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
A.E.
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 03.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.01.2012, 15:02     Titel:
  Antworten mit Zitat      
Vielen Dank Harald....habe deinen Rat befolgt und mit Hilfe des Debuggers den Fehler gefunden.

Hast mir sehr geholfen!!!
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.