Verfasst am: 17.10.2011, 18:10
Titel: Erstellung von Vektoren innerhalb einer Schleife
Hallo zusammen,
mit meinem Programm möchte ich zum einen die z_position aus dem Namen der aktuellen Dateien ermitteln (die z_position wird für die Benennung der neuen Dateien gebraucht) und zum anderen (die Dateien enthalten letztenendes 4 Spalten a 39 Zeilen. Dabei entspricht die erste Spalte der Zeit, die Zweite der UNKALIBRIERTEN, gemittelten Geschwindigkeit, die Dritte der Standardabweichung und die Vierte der Anzahl, der zur Berechnung hinzugezogenen Geschwindigkeiten.) die Geschwindigkeit in der zweiten Spalte umzurechnen und schlussendlich eine neue Textdatei zu schreiben, die erneut die 1., 3. und die 4. Spalte besitzt plus dem modifizierten Geschwindigkeitsvektor!
(Noch ein Hinweis: Im Geschwindigkeitsvektor stehen neben positiven natürlichen Zahlen auch NaN falls keine Geschwindigkeit gemessen wurden.)
data=[time' vel_kal rms number]% Hier ist der Fehler dlmwrite(filename, header, 'delimiter','', 'newline', 'pc');
dlmwrite(filename, data, 'delimiter','\t', 'newline', 'pc', '-append');
end
Allerdings blieb der Fehler weil (so ist meine Vermutung) keine Vektoren geschrieben werden, wie eigentlich gewünscht) sondern nur der Wert der letzten Schleife gespeichert wird!
Ich weiss zwar nicht ob diese Idee überhaupt die richtige ist aber wie kriege ich es hin, dass time_kal, rms_kal und number_kal Vektoren werden also stets die gleiche Länge haben wie vel_kal damit kein Fehler entsteht?
Über Verbesserungsvorschlöge würde ich mich sehr freuen!!
Euer unerfahrener Waldi
Verfasst am: 17.10.2011, 21:30
Titel: Re: Erstellung von Vektoren innerhalb einer Schleife
Hallo Waldemar,
Dein Code ist fast nicht lesbar. Bitte benutze die CODE-Umgebung und auf keinen Fall glebe Schrift auf weißem Grund. Die normale Einrückung der Code-Zeilen wäre auch sehr hilfreich.
Du hast sehr viele Details erwähnt, die gar nichts mit dem Problem zutun haben. Ob die Zahlen Geschwindigkeiten oder Äpfel sind ist MATLAB egal. Das lenkt aber beim Lesen der Nachricht sehr ab.
Ich würde Dir raten, nur die Zeilen des Codes zu posten, die das Problem erzeugen und eine möglichst eindeutige Frage zu stellen. Vielleicht diese:
Dann stoppt Matlab, wenn der Fehler auftritt und Du kannst z.B. im Command-Window die Dimensionen der 4 Variablen anschauen, ob sie in der gedachten Weise zusammen passen.
Nebenbei: Die FOR-Schleife ließe sich so einfacher ausdrücken:
ich möchte mit meinem Porgramm die z_position jeder Datei, die im aktuellen Verzeichnis ist, ermitteln und darauffolgend eine Vektor erstellen, der alle z_positionen speichert!
aber irgendwie kriege ich nicht die richtige Syntax für den Vektor (rot markiert) erstellt!
ich habe es nochmal mit einem Ratschlag von Harald probiert (die entsprechenden Zeilen sind auskommentiert)
mittlerweile wird ein Vektor erstellt, bei dem sich auch je Zeilendurchlauf ein Null gegen eine andere Zahl austauscht!
Allerdings sollten ja in den Vektor die z_position eingetragen werden!
1. Problem!
Ersteres ist ein Vektor der Dimension [1 x 2] vom Typ CHAR (also zwei Buchstaben hintereinander), zweiteres ist ein scalarer DOUBLE.
In Deinem Code wird z.B. "z_position = dir_all_i(16:17)" gesetzt. Danach kann "z_position" der String '55' sein. "z_position(i)" ist dann der i.te Buchstabe davon. Und da Du den in ein DOUBLE-Array schreibst, wird der ASCII-Wert des Buchstaben genommen:
for i = 1:length_list_all
dir_all_i = dir_all{i}; % Much faster than CHAR(dir_all(i))
index = strfind(dir_all_i, '_z');
z_position_all(i) = sscanf(dir_all_i(index + 2:end), '%d', 1);
end
kam erst heute dazu deine hilfe anzuwenden!
...sie hat prima geklappt!
danke sehr.
_________________
Im "ich brauch Hilfe"-Status
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.