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

Einzelne Zahlen aus txt Datei in Martix einlesen und Plotten

 

Daniel86
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 01.06.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.06.2021, 11:53     Titel: Einzelne Zahlen aus txt Datei in Martix einlesen und Plotten
  Antworten mit Zitat      
Hallo,

ich bin noch Matlab Anfänger und möchte eine txt Datei auslesen. Ich weiß es gibt schon unzählige Beiträge dazu aber ich habe darin nicht so die Antwort gefunden, wie ich sie brauche.

Was ich genau machen möchte:
Ich habe eine Robotersimulation zur Arbeitsraumbestimmung, in der ein Raster mit einzelnen Positionen angefahren wird und geklärt wird, ob diese erreichbar sind oder nicht.
In einer txt Datei werden die Informationen gespeichert. Hier ein vereinfachter Auszug:

Target: 1
x:50y:-50z:0
Status: 1
Target: 2
x:-50y:-50z:0
Status: 1
Target: 3
x:50y:50z:0
Status: 1
Target: 4
x:-50y:50z:0
Status: 1

Status: 0 ist nicht erreichbar, 1 erreichbar, 2 nicht linear erreichbar und 3 Kollision
Eine Datei hat über 5000 Targets.

Jetzt soll der jeweilige Status der einzelnen Positionen in eine Matrix eingelesen werden und als Konturplot ausgeben werden. Dabei soll im besten Fall 1 grün und 3 rot sein.
Die Matrix soll den Arbeitsbereich darstellen von 800x500 mm mit einem Rasterabstand von 10 mm.

Wie kann ich gezielt den Status auslesen, geht das überhaupt in dieser Form der vorliegenden Formatierung der Datei?

Ich habe leider nicht lange Zeit mich Wochenlang mit Matlab zu beschäftigen, ich könnte die Werte natürlich auch von Hand eintragen, wären halt 2, 3 Tage Fleißarbeit und das Thema wäre durch.

Ist der Ansatz überhaut empfehlenswert mit der Matrix?
Im Anhang ist ein Bild davon, wie es ungefähr aussehen soll.

Beste Grüße
Daniel

Plot Arbeitsbereich.png
 Beschreibung:

Download
 Dateiname:  Plot Arbeitsbereich.png
 Dateigröße:  20.57 KB
 Heruntergeladen:  224 mal
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.449
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.06.2021, 13:10     Titel:
  Antworten mit Zitat      
Hallo,

hier ein erster Versuch:

Code:
fid = fopen('targets.txt');
targets = [];
xyz = [];
status = [];
while ~feof(fid)
    targets(end+1) = fscanf(fid, 'Target: %d', [1,1]);
    fgetl(fid);
    xyz(end+1, :) = fscanf(fid, 'x:%fy:%fz:%f', [1,3]);
    fgetl(fid);
    status(end+1) = fscanf(fid, 'Status: %d', [1,1]);
    fgetl(fid);
end
fclose(fid);

colors = [0 0 1;   % Status = 0 (blau)
          0 1 0;   % Status = 1 (grün)
          1 0.6 0; % Status = 2 (orange)
          1 0 0];  % Status = 3 (rot)
scatter(xyz(:,1), xyz(:,2), [], colors(status+1, :))


Man kann das Einlesen sicher auch noch schöner gestalten und evtl. auch das Plotten, aber als erster Ansatz ist das vielleicht schon mal was.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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 - 2024 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.