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

Lichtschnitt bild CSV darstellen

 

Muecke82
Forum-Century

Forum-Century



Beiträge: 100
Anmeldedatum: 10.06.13
Wohnort: Großraum Stuttgart
Version: GNU Octave V.7.1.0
     Beitrag Verfasst am: 29.12.2014, 01:11     Titel: Lichtschnitt bild CSV darstellen
  Antworten mit Zitat      
Hallo miteinander,

ich kann bei einem bekannten so lange er nicht da ist, sein Matlab benutzen.

Version Matlab 2014b


ich habe eine CSV Datei die von einem "Lichtschnitt Scanner" oder wie man das auch immer nennt generiert wurde.

Jetzt möchte ich die Daten anzeigen lassen (so das ich das was abgescannt wurde mir im 3D Raum anschauen kann).

leider hatte ich im Falschen Forum schon mal gefragt:
Zitat:
ich habe meine "replay.csv" dort geladen dann ist ein Extra Fenster aufgegangen in dem ich alle Daten als eine Tabelle gesehen habe, dort konnte ich dann auch einen Bereich markieren, warum ich daraus dann eine Script erstellen kann habe ich noch nicht verstanden.

Meine Frage ist eigentlich dahingehend kann ich in dem Fenster auch angeben was meine X, Y und Z Achse ist, und mir die Daten als Bild anzeigen lassen? bzw. einen Script generieren lassen damit ich das Bild anzeigen lassen kann?


dahinraffe bekomme ich auch eine Antwort, doch mit der kann ich nicht so viel anfangen Sad

Harald hat Folgendes geschrieben:
Hallo,

das Import Tool ist ausschließlich für den Variablenimport. Die Option "Generate Script / Function" ermöglicht es, daraus Code zu generieren, um das in automatisierte Workflows einzubinden.
Zur Visualisierung kannst du im Workspace Browser eine oder mehrere (mit Strg + Klick) Variablen markieren, und dann per Rechtsklick die Visualisierungsoptionen anschauen.

Fragen zu MATLAB bitte in Zukunft in einen eigenen Thread. Ich zumindest schaue normal nicht in Threads im Octave-Forum, da ich selber nur mit MATLAB arbeite.

Grüße,
Harald



Wenn Ihr mir etwas unter die Arme greifen könntet, wäre ich euch sehr dankbar.


Das Andere Thema in dem ich Falsch war das sich aber um das Selbe dreht ist Hier zu finden:
Octave für Anfänger (CSV einlesen)


Gruß Mücke
_________________

--
Anfänger, habe noch nie mit so was gearbeitet.
bitte um Verständnis.
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.12.2014, 11:35     Titel:
  Antworten mit Zitat      
Hallo,

wenn ich das aus dem anderen Thread richtig entnehme, ist die Frage letztlich, wo man die Variablen selectieren kann. Der "Workspace Browser" ist das Teilfenster, in dem die momentan aktiven Variablen angezeigt werden. In seiner linken oberen Ecke steht auch "Workspace".
Wo genau sich dieses Fenster befindet, hängt von deinen Desktopeinstellungen (unter HOME --> Layout) ab. Sollte dort bei Workspace kein Haken sein, dann anklicken.
Um ein grundlegendes Verständnis für MATLAB zu entwickeln, kann es hilfreich sein, das "Getting Started" (http://www.mathworks.com/help/matlab/getting-started-with-matlab.html) durchzuarbeiten.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Muecke82
Themenstarter

Forum-Century

Forum-Century



Beiträge: 100
Anmeldedatum: 10.06.13
Wohnort: Großraum Stuttgart
Version: GNU Octave V.7.1.0
     Beitrag Verfasst am: 29.12.2014, 11:55     Titel:
  Antworten mit Zitat      
Äh so ähnlich.


ich versuche gerade die Datei "replay.csv" in einem "mesh" oder "surf" auszugeben.
Wie du es richtig gesagt hast muss ich die Variablen natürlich noch füllen.

und dann das gesamte auch noch in ein Script bekommen.


Code:
- Laden replay.csv
- csv Bereiche für Variablen definieren.

mesh(X,Y,Z);   oder surf(X,Y,Z)
title('X,Y,Z');


EDIT:

Hättest du mir vielleicht ein Beispiel, gerne auch mit einer anderen csv Datei.

z.B. die so aufgebaut ist:

ziele Inhalt durch , getrennt
...
6 Kopfdaten unwichtig
7 Kopfdaten unwichtig
8 asd,asd,asd,asd,X,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y
9 asd,asd,asd,asd,X,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z
10 asd,asd,asd,asd,X,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z
11 asd,asd,asd,asd,X,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z
....

also ein Beispiel Code meine ich, wie ich so eine CSV einlesen könnte und dann auch die Variablen definiere damit das auch richtig angezeigt wird.

denn Y ist ja nur ein mal für alle Werte vorhanden, X ist immer der erste wert in jeder reihe, und Z ist ja zeilenweise vorhanden.

das "asd" soll für Daten stehen die unwichtig sind.
_________________

--
Anfänger, habe noch nie mit so was gearbeitet.
bitte um Verständnis.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.12.2014, 12:25     Titel:
  Antworten mit Zitat      
Hallo,

hast du es denn mal mit dem Import Tool versucht?
Dort brauchst du ja nur die jeweiligen Bereiche zu markieren.

Wenn du selbst Befehle schreiben möchtest, würde ich zu textscan raten. Dort findest du viele Beispiele in der Doku. Grundsätzlich etwa so:

fid = fopen('replay.csv');
fmt = [repmat('%*s ', 1, 4), repmat('%f ', 1, 24)];
data = textscan(fid, fmt, 'Headerlines', 7);
fclose(fid);
data = cell2mat(data);
X = data(2:end,1);
Y = data(1, 2:end);
Z = data(2:end, 2:end);

Wenn du Daten zur Verfügung stellst, dann bitte doch einen "echten" Ausschnitt als Anhang - dann kann man den Vorschlag gleich selbst testen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Muecke82
Themenstarter

Forum-Century

Forum-Century



Beiträge: 100
Anmeldedatum: 10.06.13
Wohnort: Großraum Stuttgart
Version: GNU Octave V.7.1.0
     Beitrag Verfasst am: 29.12.2014, 14:03     Titel:
  Antworten mit Zitat      
ich habe mir jetzt einen Remote Verbindung eingerichtet, so kann ich von hier auch auf das Matlab zugreifen Smile.


Was meinst du mit "Echte" Daten?
ich habe die Echten Daten als Große Datei vorliegen:

Hoffe das Klappt "replay.zip" aus dem Post Nr. 4 vom
Octave für Anfänger (CSV einlesen)


Das ist die Echte Musterdatei in der Größe von 9.3 MB als ZIP.

EDIT:
mit dem Import Tool meinst du das (Roter Pfeil)


Das hatte ich ja schon offen und, bin mir aber nicht sicher wie ich das machen muss.

1. Daten einlesen (Extra Fenster Öffnet sich, das Import Tool Roter Pfeil)
2. alle Y Werte Markieren
3. Variable Names Row = 1
4. IMPORTED DATA ?? was muss ich hier wählen, denn die Y Werte sind ja nur ein mal definiert)
5. unimportable Cells = so lassen wie es ist.
6. Import Selection ??



ich komme da nicht so ganz klar mit Sad

Bildschirmfoto 2014-12-29 um 14.17.06.png
 Beschreibung:
Das hatte ich ja schon offen und, bin mir aber nicht sicher wie ich das machen muss.

Download
 Dateiname:  Bildschirmfoto 2014-12-29 um 14.17.06.png
 Dateigröße:  120.13 KB
 Heruntergeladen:  395 mal
Bildschirmfoto 2014-12-29 um 14.10.36.png
 Beschreibung:
mit dem Import Tool meinst du das (Roter Pfeil)

Download
 Dateiname:  Bildschirmfoto 2014-12-29 um 14.10.36.png
 Dateigröße:  25.67 KB
 Heruntergeladen:  394 mal

_________________

--
Anfänger, habe noch nie mit so was gearbeitet.
bitte um Verständnis.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

hast du mal den Code versucht? Das "Getting Started" durchgearbeitet?

Imported Data --> Matrix.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Muecke82
Themenstarter

Forum-Century

Forum-Century



Beiträge: 100
Anmeldedatum: 10.06.13
Wohnort: Großraum Stuttgart
Version: GNU Octave V.7.1.0
     Beitrag Verfasst am: 09.01.2015, 15:05     Titel:
  Antworten mit Zitat      
Hallo Harald,

bitte entschuldige das ich mich nicht mehr zurück gemeldet habe, jedoch ist das bei mir alles ein Privates Projekt (kein Studium / Schule / Arbeit etc.) und ich kann nicht immer so viel zeit dafür am Stück aufbringen daher geht das bei mir etwas Schleppend voran.


deinen Code habe ich getestet, jedoch läuft er ohne Fehlermeldung durch doch ich kann mit den Variablen nichts anfangen, und ich kann auch keine Figur anzeigen damit Sad


Habe mich mit dem Import Tool noch mal befasst,
und alle Werte X, Y und Z jeweils als Script erstellen lassen, und dann in eine Test.m zusammen gefügt,

ich bekomme schon mal ein Ergebnis jedoch noch nicht so wie ich mir das vorstelle Sad

ich habe den Eindruck das ich mir da viel zu viel vorgenommen habe, und
werde das besser auf eins legen, denn wenn ich daran denke das ich mit dem Darstellen schon Probleme habe wie soll das erst werden wenn ich Berechnungen in den Daten anstellen möchte?
das klappt ja dann mal gar nicht.


denn was ich eigentlich machen möchte ich ist in den Daten Wendepunkte berechnen um dann ein Pfad daraus zu erstellen mit dem ich eine Fräße an steuern lassen kann.

leider sind meine Muster Daten alle Flach auf einem Tisch aufgelegen, in echt sind die leicht gewölbt so das der "Blaue" Wendepunkt nicht auf einer Ebene ist Sad

Die Blauen Wendepunkte sollen so später auf alle Linien hin ein Pfad ergeben.

z.B. so sieht das z.B. aus, die Blauen und Roten kreise möchte ich ermitteln,
und die Blauen kreise sollen später den Roten Pfad im oberen 3D Bild ergeben.


Bildschirmfoto 2015-01-09 um 14.55.41.png
 Beschreibung:

Download
 Dateiname:  Bildschirmfoto 2015-01-09 um 14.55.41.png
 Dateigröße:  436.76 KB
 Heruntergeladen:  366 mal

_________________

--
Anfänger, habe noch nie mit so was gearbeitet.
bitte um Verständnis.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

Zitat:
doch ich kann mit den Variablen nichts anfangen, und ich kann auch keine Figur anzeigen damit

Je konkreter deine Angaben sind, desto eher kann man dir helfen.

Ich habe jetzt mal in den anderen Thread geschaut und die Datei angeschaut. Ist ja kein Wunder, dass der Code mit der Datei nicht funktioniert, da die Datei ein anderes Format hat als du am 29.12.2014, 11:55 angegeben hast. Das müsstest du also entsprechend anpassen.

Zitat:
denn wenn ich daran denke das ich mit dem Darstellen schon Probleme habe wie soll das erst werden wenn ich Berechnungen in den Daten anstellen möchte? das klappt ja dann mal gar nicht.

Berechnungen sind häufig deutlich einfacher als aussagekräftige Darstellungen, insbesondere wenn es um mehrdimensionale Daten geht.

Die folgenden Erklärungen dessen, was du machen willst, verstehe ich leider nicht.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Muecke82
Themenstarter

Forum-Century

Forum-Century



Beiträge: 100
Anmeldedatum: 10.06.13
Wohnort: Großraum Stuttgart
Version: GNU Octave V.7.1.0
     Beitrag Verfasst am: 09.01.2015, 17:05     Titel:
  Antworten mit Zitat      
Wenn du das meinst, dann probiere ich das noch mal.


1. Visualisierung
- 3D anzeige so wie in dem Bild im vorherigen Post
- Das 3D Gebilde kann mit der Maus gedreht werden

2. Interpretation der Fehlenden Daten
- Hoffe das es hier ein Fertiges Tool gibt

2. Berechnungen
- Möchte die Rillen finden
- Die Rillen sollen dann zu einem Pfad zusammen gefügt werden
so das eine Fräße das nacharbeiten kann


so jetzt aber erst mal zu 1.

mit dein Code ist zwar super klein doch ich verstehe nicht was der macht Sad



EDIT: ich habe das ja mit dem Import Tool versucht.
das ist der Code dazu:
aus Platzgründen habe ich hier im Forum beim formatSpec alles mit (CR) in der Zeilenlänge gekürzt.

wollte eigentlich das Bild oben aus dem Beitrag raus nehmen bzw. durch ein etwas Kleineres ersetzen geht aber nicht mehr Sad

Code:
%Daten Lesen und ausgeben - versuch über das Import Tool


%% alles Schließen und reinigen
 close all
 clc
 clear all

%% X-Achse Lesen
        filename = 'C:\Users\Muecke\Documents\MATLAB\CSV\replay.csv';
        delimiter = ',';
        startRow = 13;
        endRow = 10907;
    % Format
        formatSpec = '%f%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s%*s
%*s%*s%*s%*s%[^\n\r]';

    % Öffnen der Textdatei

        fileID = fopen(filename,'r');
    % Lesen der Datenspalten nach Format-String
        textscan(fileID, '%[^\n\r]', startRow-1, 'ReturnOnError', false);
        dataArray = textscan(fileID, formatSpec, endRow-startRow+1, 'Delimiter', delimiter, 'EmptyValue' ,NaN,'ReturnOnError', false);
    % Schließen der Textdatei
        fclose(fileID);
    % Erstelle Ausgangsvariable
        X = [dataArray{1:end-1}];
    % Löschen der temporäre Variablen
        clearvars filename delimiter startRow endRow formatSpec fileID dataArray ans;

%% Y-Achse Lesen
        filename = 'C:\Users\Muecke\Documents\MATLAB\CSV\replay.csv';
        delimiter = ',';
        startRow = 12;
        endRow = 12;
    % Format
        formatSpec = '%*s%*s%*s%*s%*s%*s%*s%*s
%*s%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%[^\n\r]';

    % Öffnen der Textdatei

        fileID = fopen(filename,'r');
    % Datenspalten Lesen nach Format-String
        textscan(fileID, '%[^\n\r]', startRow-1, 'ReturnOnError', false);
        dataArray = textscan(fileID, formatSpec, endRow-startRow+1, 'Delimiter', delimiter, 'EmptyValue' ,NaN,'ReturnOnError', false);
    % Schließen der Textdatei
        fclose(fileID);
    % Erstelle Ausgangsvariable
        Y = [dataArray{1:end-1}];
    % Löschen der temporäre Variablen
        clearvars filename delimiter startRow endRow formatSpec fileID dataArray ans;
   
%% Z-Achse Lesen
        filename = 'C:\Users\Muecke\Documents\MATLAB\CSV\replay.csv';
        delimiter = ',';
        startRow = 13;
        endRow = 10907;
    % Format
        formatSpec = '%*s%*s%*s%*s%*s%*s%*s%*s
%*s%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
%f%f%f%f%f%[^\n\r]';

    % Öffnen der Textdatei
        fileID = fopen(filename,'r');
     % Datenspalten Lesen nach Format-String
        textscan(fileID, '%[^\n\r]', startRow-1, 'ReturnOnError', false);
        dataArray = textscan(fileID, formatSpec, endRow-startRow+1, 'Delimiter', delimiter, 'EmptyValue' ,NaN,'ReturnOnError', false);
    % Schließen der Textdatei
        fclose(fileID);
    % Erstelle Ausgangsvariable
        Z = [dataArray{1:end-1}];
    % Löschen der temporäre Variablen
        clearvars filename delimiter startRow endRow formatSpec fileID dataArray ans;

_________________

--
Anfänger, habe noch nie mit so was gearbeitet.
bitte um Verständnis.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

den generierten Code des Import Tools würde ich eher als Black Box sehen, d.h. es macht das, was es macht, und gut.

Hier ein paar Kommentare zu meinem Code-Vorschlag:
Code:
% Datei öffnen
fid = fopen('replay.csv');
% angenommene Dateistruktur: 4 Strings, die ignoriert werden können, gefolgt von 24 Zahlen, die eingelesen werden sollen
fmt = [repmat('%*s ', 1, 4), repmat('%f ', 1, 24)];
% Einlesen der Datei mit diesem Format. Die ersten 7 Zeilen werden ignoriert.
data = textscan(fid, fmt, 'Headerlines', 7);
fclose(fid);
% Sammeln der Daten
data = cell2mat(data);
% Aufspalten in X, Y, Z (
X = data(2:end,1);
Y = data(1, 2:end);
Z = data(2:end, 2:end);

Ansonsten müsstest du schon konkrete Fragen stellen, was du nun an dem Code nicht verstehst.

Oft hilft es auch, unabhängige Fragen in verschiedenen Threads zu stellen. Es ist unwahrscheinlich, dass sich jemand noch in einen Thread mit bereits 8 teils langen Beiträgen einliest um zu schauen, ob er da noch irgendwas beitragen kann.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Muecke82
Themenstarter

Forum-Century

Forum-Century



Beiträge: 100
Anmeldedatum: 10.06.13
Wohnort: Großraum Stuttgart
Version: GNU Octave V.7.1.0
     Beitrag Verfasst am: 09.01.2015, 17:54     Titel:
  Antworten mit Zitat      
Wenn es dir Recht ist würde ich das schriet für schriet durcharbeiten.

erst mal danke das du mich noch nicht abgeschrieben hast.
Danke für deine Kommentare:
Konkret habe ich folgendes verstanden:
Code:
   % Datei öffnen
        fid = fopen('replay.csv');

kompletter Inhalt der Datei wird in die Variable fid geladen

Code:
   % angenommene Dateistruktur: 4 Strings, die ignoriert werden können,
    % gefolgt von 24 Zahlen, die eingelesen werden sollen
        fmt = [repmat('%*s ', 1, 4), repmat('%f ', 1, 24)]

Hier wird ein Strang erstellt der beim einlesen der einzelnen zielen helfen soll.

wobei das Format "%s" später ignoriert wird
wobei das Format "%f" später verwendet wird, steht glaube ich für Zahlen


Code:
   % Einlesen der Datei mit diesem Format. Die ersten 7 Zeilen werden ignoriert.
        data = textscan(fid, fmt, 'Headerlines', 7)

was hier passiert verstehe ich nicht Sad

es wird ein scan gemacht Basis ist die Datei: fid
Das Format des scan`s ist: fmt
was ist das "Headerlines"
und dann die ersten 7 zielen werden ignoriert

Jetzt ist wahrscheinlich die Matrix erstellt worden mit Inhalt ? in der nur noch die Relevanten Daten drin sein sollen?

durch das Format werden die ersten 4 Zeichen jeder Zeile ignoriert und der Rest (soviel %f im Format vorhanden) wird dann in die Matrix geschrieben und alles ist mit "," getrennt wie im Format Spring auch?

ist das soweit Richtig?



bei mir ist x, y und z alle auf NaN Sad


EDIT:
habe hier noch mal die besagte Muster Datei angehängt.
und auch noch mal grafisch dargestellt welche werte wo zubinden sind in der Datei.


EDIT:
habe das jetzt mal etwas zerlegt, um es nachzuvollziehen, doch egal was ich mache bekomme ich immer nur NaN in den Zellen angezeigt Sad warum ??
das ist der einfache Code mit den ich gearbeitet habe:
Code:
clear all
clc

fileID     = fopen('replay.csv');                                          % Datei öffnen
formatSpec = [repmat('%*s ', 1, 4), repmat('%f ', 1, 1000)];               % Format für die zu lesende zeile
data       = textscan(fileID, formatSpec, 'Headerlines', 11);              % ??
fclose(fileID);                                                            % Datei Schlißen
Samlung    = cell2mat(data);                                               % ??


replay.zip
 Beschreibung:
Musterdaten

Download
 Dateiname:  replay.zip
 Dateigröße:  9.3 MB
 Heruntergeladen:  434 mal
Bildschirmfoto 2015-01-09 um 18.08.28.jpg
 Beschreibung:
Grafische Darstellung wo die Daten in der CSV sind.

Download
 Dateiname:  Bildschirmfoto 2015-01-09 um 18.08.28.jpg
 Dateigröße:  445.13 KB
 Heruntergeladen:  370 mal

_________________

--
Anfänger, habe noch nie mit so was gearbeitet.
bitte um Verständnis.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.01.2015, 19:49     Titel:
  Antworten mit Zitat      
Hallo,

ich würde dich sehr bitten, die Dokumentation der einzelnen Funktionen genau zu lesen. Letztlich würde ich dir nämlich genau das schreiben, was dort auch steht, z.B.

Zitat:
kompletter Inhalt der Datei wird in die Variable fid geladen

nein, es wird lediglich eine Referenz auf die Datei erstellt.

Zitat:
was ist das "Headerlines"
und dann die ersten 7 zielen werden ignoriert

Ich würde es so sagen: 'Headerlines', 7 ist ein Parameter-Wert - Paar, das angibt, dass zu Beginn 7 Zeilen übersprungen werden sollen.

Zitat:
durch das Format werden die ersten 4 Zeichen jeder Zeile ignoriert

Genauer gesagt, die ersten 4 Zeichenketten.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Muecke82
Themenstarter

Forum-Century

Forum-Century



Beiträge: 100
Anmeldedatum: 10.06.13
Wohnort: Großraum Stuttgart
Version: GNU Octave V.7.1.0
     Beitrag Verfasst am: 09.01.2015, 20:03     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Zitat:
kompletter Inhalt der Datei wird in die Variable fid geladen

nein, es wird lediglich eine Referenz auf die Datei erstellt.

sorry für meine Ausdrucksweise, so in die Richtung meinte ich das.

Harald hat Folgendes geschrieben:

Zitat:
was ist das "Headerlines"
und dann die ersten 7 zielen werden ignoriert

Ich würde es so sagen: 'Headerlines', 7 ist ein Parameter-Wert - Paar, das angibt, dass zu Beginn 7 Zeilen übersprungen werden sollen.

Ok dann ist das ja halbwegs richtig gewesen.

Harald hat Folgendes geschrieben:

Zitat:
durch das Format werden die ersten 4 Zeichen jeder Zeile ignoriert

Genauer gesagt, die ersten 4 Zeichenketten.


OK eine Zeichenkette ist das was bis zu jedem "," steht?


dann habe ich den Code mal angepasst an die Datei so das die richtigen Daten eingelesen werden könnten. (Bild aus dem letzten Post)

Code:
clear all
clc

fileID     = fopen('replay.csv');                                          % Datei öffnen
formatSpec = [repmat('%*s ', 1, 9), repmat('%f ', 1, 679)];                % Format für die zu lesende zeile
data       = textscan(fileID, formatSpec, 'Headerlines', 11);              % ??
fclose(fileID);                                                            % Datei Schlißen
Samlung    = cell2mat(data);                                               % ??


die Y werte stehen in Zeile 12
ab Zeile 12 kommen dann die Z werte

die ersten 9 Zellen (Zeichenketten) sollen ignoriert werden.
da die Datei in einer Excel Tabelle bis zur Zelle (ZL) geht und das insgesamt 688 Zellen machen würde habe ich 688-9(zu ignorierende Zellen) angegeben um alles einzulesen.

jedoch bekomme ich immer bei allen nur "NaN" angezeigt Sad
irgend was geht doch da schief Sad


ich verstehe da nichts Sad warum bekomme ich in der Variable Samlung immer keine werte angezeigt Sad
das ist doch sch...
_________________

--
Anfänger, habe noch nie mit so was gearbeitet.
bitte um Verständnis.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.01.2015, 22:45     Titel:
  Antworten mit Zitat      
Hallo,

sorry wenn ich mich wiederhole, aber du musst wirklich mal die Dokumentation der Funktionen lesen - und wenn etwas nicht funktioniert, dann halt zur Not auch mal komplett von oben bis unten. Das ist auch mir nicht erspart geblieben, bis ich mir eine gewisse Erfahrung angeeignet hatte.
Hier ist das Problem, dass man das Trennzeichen explizit angeben muss, wenn es nicht Leerzeichen oder Tabulator ist:
Code:
data       = textscan(fileID, formatSpec, 'Headerlines', 11, 'Delimiter', ',');

siehe Beschreibung der Option 'Delimiter' in der Doku von textscan.

Weiter unten ist sogar ein Beispiel zum Lesen einer csv-Datei ("Specify Delimiter and Empty Value Conversion"), das die Verwendung dieser Option zeigt.
Auch der Code, den du dir mit Import Tool generiert hast, verwendet diese Option.

Ich habe auch Visualisierungsversuche gemacht, was bei meinem alten Aldi-Rechner zuhause bei dieser Datenmenge allerdings leider gescheitert ist. Wenn das bei dir genau ist, bleibt an sich nur, die Daten geeignet vorzuverarbeiten. 10000 Datenpunkte in einer Dimension bringt ja ohnehin nichts, da das allein schon an der Bildschirmauflösung scheitert.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Muecke82
Themenstarter

Forum-Century

Forum-Century



Beiträge: 100
Anmeldedatum: 10.06.13
Wohnort: Großraum Stuttgart
Version: GNU Octave V.7.1.0
     Beitrag Verfasst am: 09.01.2015, 23:51     Titel:
  Antworten mit Zitat      
Hey,

was würde ich nur ohne Dich machen, ohne dich hätte ich Matlab schon lange den Rücken gekehrt und mir die Haare an einer anderen Blöden Sache heraus gerissen.

Jetzt habe ich das glaube ich mit den Parametern
danke.


Du hast recht das ich das alle auf ein mal anzeigen etwas viel ist.

Wobei das die Software die ich da habe bei der ich leider nur eine Visualisierung vornehmen kann ohne die Daten zu bearbeiten wird alles angezeigt.

Die zeigen das alles wie so ein lauf band an, ich kann das kann Kiepen und drehen heran Zoomen und weiter weg Zoomen, wenn ich dann an der Maus das Rad bewege dann Fahre ich den Drehpunkt um den ich komplette Profil herum bewegen kann weiter nach vorne oder nach hinten.


jetzt ist es erst mal die Daten richtig einlesen wenn ich das dann habe Könnte ich mir ja auch von den Daten her immer nur einen teil anzeigen lassen oder auch nur eine Linie dar heraus.

Doch so weit bin ich noch nicht.
Noch muss ich erst mal die Werte alle in die Richtigen Variablen Packen.

Und dann muss ich Wahrscheinlichkeit das Format ändern, aber das dann in einem anderen Thema.

Noch bin ich am einlesen der Daten Smile und dank dir habe ich da ein kleinen Hoffnungsschimmer.

ich mache dann mal weiter und melde mich dann wider wenn ich mal wider nicht weiter komme, was wahrscheinlich nicht lange dauern wird.
_________________

--
Anfänger, habe noch nie mit so was gearbeitet.
bitte um Verständnis.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.