Filter löschen
Filter löschen

How to import data of the form [variable name]Data[-]

1 Ansicht (letzte 30 Tage)
Simon Dengler
Simon Dengler am 12 Feb. 2022
Kommentiert: Simon Dengler am 14 Feb. 2022
I want to read data and variables from a specially formatted file as MATLAB variables. Preferably into a structure.
I am looking for the best approach for a quick solution. unfortunately I am stuck. Maybe someone can give me a helpful hint.
Data in the file have the strucktur:
[variable name]
data
[-]
[variable name]
x1 y1
x2 y2
x3 y3
[-]
A shortened example file:
Instrument Name
File Format Version
[DateTime]
1643810991
[-]
[GenParams]
[CableID]
[-]
[FiberID]
[-]
[FiberType]
0
[-]
[Settings]
[Wavelength]
1
[-]
[PulseWidth]
7
[-]
[End]
35.000
[-]
[Start]
0.000
[-]
[DataPoints]
0.011 -5.000
0.011 -5.000
0.036 -5.000
0.061 -5.000
[-]
  6 Kommentare
Simon Dengler
Simon Dengler am 14 Feb. 2022
Of course, I've already looked at the manufacturer, who doesn't provide anything. the company is also far too small and the product far too niche. I will have to tackle the task myself.
I haven't built a praser yet. now I'm looking for information how to do that
Stephen23
Stephen23 am 14 Feb. 2022
@Simon Dengler: please upload a sample file by clicking the paperclip button.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Stephen23
Stephen23 am 14 Feb. 2022
Bearbeitet: Stephen23 am 14 Feb. 2022
rgx = '\[(\w+)\]\s*([^\[]+)\[\-\]';
str = fileread('test.txt');
tkn = regexp(str,rgx,'tokens');
tkn = vertcat(tkn{:});
tmp = cellfun(@str2num,tkn(:,2),'uni',0);
out = cell2struct(tmp,tkn(:,1),1);
out.DateTime = datetime(out.DateTime,'ConvertFrom','posix')
out = struct with fields:
DateTime: 02-Feb-2022 14:09:51 CableID: [] FiberID: [] FiberType: 0 Wavelength: 1 PulseWidth: 7 End: 35 Start: 0 DataPoints: [4×2 double]
out.DataPoints
ans = 4×2
0.0110 -5.0000 0.0110 -5.0000 0.0360 -5.0000 0.0610 -5.0000
  1 Kommentar
Simon Dengler
Simon Dengler am 14 Feb. 2022
Thank you very much!! That's perfect, and so wonderfully simple.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by