Einlesen .txt mit Decimal Separator ',' führt zum wegfallen der Leerfelder im Datensatz
조회 수: 13 (최근 30일)
이전 댓글 표시
Hallo zusammen,
ich versuche derzeit, eine .txt-Datei mit readtable einzulesen. Über den ImportData-Button funktioniert das sehr einfach. Allerdings nicht mit dem von mir geschriebenen Code.
% Dateiauswahl Winkel
clear filename
clear path
[filename, path] = uigetfile('*.txt', 'Datei(en) auswählen - Winkeldaten', 'MultiSelect', 'on');
% Überprüfung, ob eine oder mehrere Dateien ausgewählt wurden
if ischar(filename)
filename = {filename};
end
for i = 1:length(filename)
% Einlesen der txt-Datei in eine Tabelle
opts = detectImportOptions(fullfile(path, filename{i}),EmptyLineRule="read",TextType="string", DecimalSeparator=",");
oldtable = readtable(fullfile(path, filename{i}),opts);
%Abspeichern
varname = sprintf('Winkel_%d', i);
eval(sprintf('%s = oldtable;', varname));
assignin('base', varname, oldtable);
end
Im Anhang befinden sich die .txt-Datei (Winkel_VP4_21.txt) und das gewünschte Ergebnis (matlab.mat). Mein Problem besteht darin, dass die Leerstellen in der .txt-Datei nicht erkannt werden bzw. wegfallen, wenn ich den Code verwende.
Ich möchte auch nicht den von Matlab generierten Code verwenden, da es dazu kommen kann, dass sich die Spaltenbezeichner ändern und von Datei zu Datei nicht dieselben sind wie in Winkel_VP4.20.txt.
Vielen Dank im Voraus! Wenn jemand mir helfen kann, wäre ich sehr dankbar.
Viele Grüße,
Niklas Burczyk
댓글 수: 0
채택된 답변
Harald
2023년 12월 13일
Hallo,
man kann sich ja dennoch durch den von MATLAB generierten Code inspirieren lassen. Die entscheidenden Zeilen sind hier wohl:
opts.DataLines = [2, Inf];
opts.Delimiter = "\t";
Wenn du das in den Code einfügst, stimmen die Zeilenanzahlen mit der .mat-Datei überein.
Viele Grüße,
Harald
댓글 수: 2
Harald
2023년 12월 13일
Hallo,
noch eine Anmerkung zum Code: eval / assignin würde ich wenn irgend möglich vermeiden.
Eine Alternative wäre hier ein Cell Array:
winkel{i} = readtable(fullfile(path, filename{i}),opts);
Grüße,
Harald
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!