Hallo Zusammen,
ich habe folgende, eigentlich recht simples, Problem.
ich möchte eine Batch-Datei erzeugen. Diese soll folgende Form annehmen:
Pfad Programm Eingabedatei1 Ergebnisdatei Kanäle Integrationskonstante
Pfad Programm Eingabedatei2 Ergebnisdatei Kanäle Integrationskonstante
Pfad Programm Eingabedatei3 Ergebnisdatei Kanäle Integrationskonstante
...
Die verschiedenen Ergebnisdateien sollen durchnummeriert werden. Dies habe ich versucht folgendermaßen zu lösen:
Code:
function batch_datei
% Funktion erzeugt nach der Eingabe verschiedener Parameter eine Batch % Datei
% Zuweisung des Dateinamens
dateiname = 'batch.bat';
% Zugriff auf Datei "dateiname" verschaffen und zum Schreiben (write) öffnen
fid = fopen(dateiname, 'w');
% Parameter abfragen [FileName, Pfad] = uigetfile('*.exe', 'Bitte wählen Sie das Programm aus: ');
Eingabedatei = input('Bitte geben Sie Ihre Eingabedatei ein: ','s');
Ergebnisdatei = input('Bitte wählen Sie einen Namen für Ihre Ergebnisdatei: ','s');
Kanaele = input('Bitte wählen Sie die Anzahl Ihrer Kanaele: ','s');
Integrationskonstante = input('Bitte geben Sie die Integrationskonstante in ms an: ','s');
Zeitbasis = input('Bitte geben Sie die Zeitbasis für max_EA an: ','s');
Anzahl = input('Bitte geben Sie die Anzahl der Probanten ein: ');
Doch leider nummeriert mir das Programm in der for-Schleife die Ergebnisdatei nicht durch und fängt auch nach jedem Schleifendurchlauf keine neue Zeile an. Obwohl dies doch eigentlich mit \n passieren sollte.
Du musst mMn das n mittels num2str umwandeln, denn so wie du es oben hingeschrieben hast, wird einfach nur ein n hinter Eingabedatei geschrieben, statt matlab zu sagen, dass du die Variable n möchtest.
Außerdem sieht die Menge an %s etwas seltsam aus.
Was genau möchtest du dort schreiben? Denn derzeit verwandelst du alles in EINEN String, benötigst also eigentlich auch nur ein %s.
_________________
LG
Martina
"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Zuletzt bearbeitet von Mmmartina am 03.04.2014, 14:38, insgesamt einmal bearbeitet
Und wieso bekomme ich mit \n keine neue Zeile in meiner erzeugten Batch-Datei hin?
lg
Wie bereits geschrieben: du erstellt derzeit genau EINEN String mit jedem Schleifendurchlauf, da du alles mit eckigen Klammern klammerst.
Behauptest im Code aber, dass du 3x String, 1xFloat, 8xString vorgeben willst - das erwartet Matlab also auch!
Stattdessen bekommt es 1x sting und macht deshalb auch keinen Zeilenumbruch, denn es kam ja erst 1x String.
Das sollte reichen:
Danke für die Erklärung und die freundliche Hilfestellung!
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
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.