|
|
Skript wiederholt mit vielen Ausgangsdateien ausführen |
|
Solveig1506 |
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 15.06.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.06.2018, 21:25
Titel: Skript wiederholt mit vielen Ausgangsdateien ausführen
|
|
Hallo zusammen,
ich habe ein Problem und zwar habe ich weit über tausend .txt Dateien (bestehend aus einer Spalte mit unterschiedlich vielen Zeilen), die ich bearbeiten muss.
Ich habe ein funktionierendes Skript, mit dem ich einen Plot und eine Variable erstelle, die ich gerne wieder als .txt Datei bzw. als Bilddatei (Plot) speichern möchte.
Ist es möglich alle meine Eingangsdateien automatisiert einzuladen, das Skript auszuführen und die beiden benötigten Eregbnisse (Plot und Workspace-Variable) zu speichern?
Ich bin ein totaler Matlab Neuling und alles was ich gefunden habe, was ungefähr mit meinem Problem zu tun haben könnte, konnte mir leider gar nicht weiter helfen
Vielen Dank schon mal und einen schönen Abend
Solveig
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 15.06.2018, 22:27
Titel:
|
|
Hallo,
schau dir mal
datastore
an.
Grüße,
Harald
|
|
|
Solveig1506 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 15.06.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.06.2018, 17:05
Titel:
|
|
|
|
|
Hallo Harald,
vielen Dank für die schnelle Hilfe!
Leider konnte ich damit nicht so viel anfangen.
Ich habe noch eine Weile gegoogelt und bin immer wieder auf eine Möglichkeit gestoßen, die mir passend erschien. Da alle meine Dateien vom gleichen Typ sind und sich im gleichen Ordner befinden, dachte ich, ich könnte eine Liste der Dateinamen erstellen und diese dann über eine for-Schleife einlesen und bearbeiten.
Meine bisherigen Versuche sehen so aus:
Liste = dir('*.xlsx');
Files = {Liste.name};
for i=1:numel(Files)
R = fullfile('C:\Users\s\Desktop\Bachelorarbeit\Matlab\Messdaten',Files{i});
data = xlsread(R);
% Hier würden die weiteren Berechnungen folgen
end
Es scheint auch soweit zu funktionieren, allerdings habe ich am Ende nur ein Ergebnis. Also nur eine bearbeitete, geplottete und gespeicherte Datei. Ich weiß nicht, wie ich das beheben kann. Ist da schon ein Fehler drin oder liegt es daran, dass meine Ergebnisse (in dem Fall 'data', der Plot etc.) bei jedem Durchlauf wieder überschrieben werden? Und wenn ja wie kann ich das beheben?
Vielen Dank für die Hilfe und viele Grüße
Solveig
|
|
|
Solveig1506 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 15.06.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.06.2018, 19:56
Titel:
|
|
Ich hab nochmal weiter probiert und das hier zusammengebastelt..
Ich wollte eigentlich erreichen, dass die verschiedenen Plots unter verschiedenen Namen gespeichert werden. Allerdings habe ich nun statt 6 Plots (numel(Files) ist = 6) plötzlich 36 Plots. Zu jeder eingeladenen Datei werden 6 Plots erstellt und deswegen habe ich 6 mal den gleichen Plot gespeichert, die anderen gar nicht.
Wo genau liegt denn hier mein Fehler?
Viele Grüße
Solveig
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 20.06.2018, 20:01
Titel:
|
|
Hallo,
du hast zwei geschachtelte Schleifen und darin 6*6 = 36 Iterationen. Der Name hängt nur von c und nicht von i ab, daher werden die Plots überschrieben. Ich bin mir nicht sicher, was die Absicht des Codes ist. Mir scheint aber, du könntest die innere Schleife einfach weglassen und i statt c für die Erstellung des Dateinamens verwenden.
Grüße,
Harald
|
|
|
Solveig1506 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 15.06.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.06.2018, 20:33
Titel:
|
|
Hallo Harald,
da hast du vollkommen recht, einfach i zu nehmen hilft. Ich bin wirklich blutiger Anfänger was Matlab angeht, deswegen will ich wirklich nicht behaupten, dass alles was ich mir da zusammenbastel wirklich Sinn macht. Allerdings werden mir die Plots jetzt richtig angezeigt, gespeichert wird allerdings nur weißer Hintergrund. Weißt du, woran das liegen könnte?
Viele Grüße
Solveig
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 20.06.2018, 21:54
Titel:
|
|
Hallo,
die Reihenfolge passt nicht. So sollte es gehen:
Kannst du auch mit dem Debugger selbst nachvollziehen.
Grüße,
Harald
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|