Hallo Abschlussarbeit,
warum speicherst Du jeden »content« in einem Cell-Array ab?
Nimm doch das Cell-Array um die »coords« abzulegen und zum Schluß per
Hallo Sirius3,
ich hab eine Ahnung, wie du das meinen könntest, aber wär es möglich, das in den Code einzubauen und mir anhanddessen zu zeigen, wie du das umsetzen würdest?
Danke Dir!
_________________
content{k} = fileread(fullfile(pfad,files{k}));
coordsTemp = regexp(content{k},'^DECL.*X([-0-9.]+), Y ([-0-9.]+), Z ([-0-9.]+), A ([-0-9.]+), B ([-0-9.]+), C ([-0-9.]+)','tokens','lineanchors','dotexceptnewline');
coordsTemp = reshape(str2double([coordsTemp{:}]),6,[])';
coords = [coords;coordsTemp] end
Und schon wieder ich...tut mir echt leid, aber komme nicht weiter.
Problem:
- Angabe eines übergeordnteten Ordners / Verzeichnis´
- Programm soll automatisch Unterordner durchsuchen und alle .dat-files erkennen
Mein Versuch:
- Verwendungu von GENPATH
- Alle Unterordner auflisten
- mit if-Schleife Ordnernamen einbeziehen und jeden Ordner auf .dat-file untersuchen
content{k} = fileread(fullfile(pfad,files{k}));
coordsTemp = regexp(content{k},'^DECL.*X([-0-9.]+), Y ([-0-9.]+), Z ([-0-9.]+), A ([-0-9.]+), B ([-0-9.]+), C ([-0-9.]+)','tokens','lineanchors','dotexceptnewline');
coordsTemp = reshape(str2double([coordsTemp{:}]),6,[])'; % Koordinaten als Tabelle
coords=[coords;coordsTemp];
Hallo Abschlussarbeit,
die Fehlermeldung ist doch eindeutig.
Entweder »pfad« oder »files{k}« ist nicht das was Du glaubst, was es ist.
Also schau Dir mal an, was wirklich drinsteht.
Guten Morgen,
die Fehlermeldung bezieht sich auf "pfad".
es wird gesagt, dass die Funktion mit fullfile keine "cell"-inputs verarbeiten kann, aber genau diese cell-inputs wandle ich vorher mit
in einen string um, oder sehe ich das falsch?
Wie ist das Ganze zu lösen bzw. besteht noch eine andere Möglichkeit, Unterverzeichnisse nacheinander auf Inhalt zu durchsuchen?
_________________
Hallo Harald,
der Fehler ist bereits behoben...trotzdem bekomme ich folgende Meldung:
"Error using dir
Function is not defined for 'cell' inputs.
liste=dir(fullfile(pth,'*.dat'));"
Irgendwie ist und bleibt "pth" eine Cell-Datei und "fullfile" braucht eine String-Datei.
_________________
ich habe es nun geschafft, "pth" als string/char-wert zu bekommen...
wäre natürlich langweilig, wenn jetzt alles funktionieren würde...
das problem jetzt, dass er mit der dimension nicht arbeiten kann:
"Index exceeds matrix dimensions.
Error in Einlesen_20130513 (line 11)
pth_ch=pfad{m,1}; "
content{k} = fileread(fullfile(pth,files{k}));
coordsTemp = regexp(content{k},'^DECL.*X([-0-9.]+), Y ([-0-9.]+), Z ([-0-9.]+), A ([-0-9.]+), B ([-0-9.]+), C ([-0-9.]+)','tokens','lineanchors','dotexceptnewline');
wenn ich alternativ statt "pth_ch=pfad{m,1}" in die geschweifte Klammer "1" im Sinne "erster Ausdruck" schreibe, dann meckert er in der Zeile RESHAPE mit der dimension...habt ihr eine Lösung?
_________________
content{k} = fileread(fullfile(pth,files{k}));
coordsTemp = regexp(content{k},'^DECL.*X([-0-9.]+), Y ([-0-9.]+), Z ([-0-9.]+), A ([-0-9.]+), B ([-0-9.]+), C ([-0-9.]+)','tokens','lineanchors','dotexceptnewline');
das Programm durchsucht nun nacheinander alle Verzeichnisse und Unterordner.
Jetzt überschreibt es leider wieder die letzte "coord"s-Datei.
Ihr habt mir schon einmal mit diesem Problem geholfen...ich würde das Bekannte gern wieder anwenden, nur habe ich meine Probleme durch die "vielen" Schleifen..
Gibt es eine Möglichkeit, eine Datei zu erstellen, die alle (coordsTemp, coords und endgültige coords) zusammenfügt?
_________________
folgendes grundlegendes Problem:
- Zeile in einer dat-file enthält Koordinaten
- Suchfunktion in Matlab sucht diese Werte bisher exakt und gibt sie super wieder
- manchmal weicht die Zeile in der dat-file minimal ab (Leerzeichen etc.)
Frage:
Ist es möglich die mir gegebene Matlabfunktion so variabel zu gestalten, dass beide Varianten (siehe unten) ausgelesen werden können?
Variante 1 (bisher):
DECL E6POS P1 = {X 1749.532, Y -146.6507, Z 166.6399, A 10.10406, B 66.05543, C -165.5217, S 2, T 35 , E1 0.0, E2 0.0, E3 0.0, E4 0.0, E5 0.0, E6 0.0}
in Voriante 2 sind weniger Leerzeichen enthalten! Dennoch soll er gleichzeitig beide Varianten finden.
Such-Code:
Code:
coordsTemp = regexp(content{n},'^DECL.*X([-0-9.]+), Y ([-0-9.]+), Z ([-0-9.]+), A ([-0-9.]+), B ([-0-9.]+), C ([-0-9.]+)','tokens','lineanchors','dotexceptnewline');
Gibt es eine allgemeine Vorschrift zur Programmierung solcher Such-zeile, damit ich sowas in Zukunft selbst variabel gestalten kann?
Ich hoffe, es kann mir jemand helfen! _________________
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
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.