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

3 vues (au cours des 30 derniers jours)
Simon Dengler
Simon Dengler le 12 Fév 2022
Commenté : Simon Dengler le 14 Fév 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 commentaires
Simon Dengler
Simon Dengler le 14 Fév 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 le 14 Fév 2022
@Simon Dengler: please upload a sample file by clicking the paperclip button.

Connectez-vous pour commenter.

Réponse acceptée

Stephen23
Stephen23 le 14 Fév 2022
Modifié(e) : Stephen23 le 14 Fév 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 commentaire
Simon Dengler
Simon Dengler le 14 Fév 2022
Thank you very much!! That's perfect, and so wonderfully simple.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Data Type Conversion dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by