Import data as struct with fields instead of struct array (Var1, Var2...)?
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Ulvi Sanal
am 12 Dez. 2020
Kommentiert: Ulvi Sanal
am 12 Dez. 2020
I'm trying to import a .txt-table as a "struct with fields". For that, I use readtable() and table2struct. But MATLAB creates a struct array with the two columns Var1 and Var2. I don't want it like that but rather like in the last screenshot, which I took from a previous work of someone else. Here, the column "Field" contains the labels of the variables and column "Value" contains the corresponding values.
The difference is that the struct I create is a struct array, whereas the one from my template is just a "struct with fields".
Side note: Another problem is that the Value "test@google.com" is a NaN when I import it. Any idea how to correctly import the string?
Matlab2020b.
0 Kommentare
Akzeptierte Antwort
Ive J
am 12 Dez. 2020
Bearbeitet: Ive J
am 12 Dez. 2020
Method 1:
input = readcell('input.txt').'; % read as cell, NaN won't be an issue here
inputStruct = cell2struct(input(2:end, :), input(1,:), 2); % use first row as field names
Method 2 (if you still insist in using readtable):
input = readtable('input.txt', 'ReadRowNames', true); % if still getting NaN, try setting 'TextType' to 'string'
input = rows2vars(input); % rotate the table
input.(1) = []; % discard OriginalVariableNames
inputStruct = table2struct(input, 'ToScalar', true); % a scalar struct
1 Kommentar
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Structures finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!