Reading data into a structure

62 views (last 30 days)
Edward
Edward on 26 Sep 2013
Answered: Walter Roberson on 26 Sep 2013
Hi, im reading the file:
26/09/2013,16:04:40 2412 928.0 49.94930
25/09/2013,14:24:30 2412 914.0 -999999
using:
fid = fopen('/path/to/your/file.txt', 'rt');
output = textscan(fid, '%s %s %f %f %f', 'Delimiter', ' ,');
fclose(fid);
now i want to read this into an array of structures s. I have tried using the following:
s.date = output{1};
s.time = output{2};
etc
however this gives me size(s) = 1 (a single structure with arrays of dates and times as members) I would prefer to have an array of structures each with a single date and time. Is this possible?

Accepted Answer

Walter Roberson
Walter Roberson on 26 Sep 2013
[s{1>length(output{1})}.date] = [output{1}{:}];
[s{:}.time] = [output{2}{:}];

More Answers (1)

Azzi Abdelmalek
Azzi Abdelmalek on 26 Sep 2013
Edited: Azzi Abdelmalek on 26 Sep 2013
%That's what you have
y=1:10
s.date=y
%result
s =
date: [1 2 3 4 5 6 7 8 9 10]
%and you want
s=struct('date',num2cell(y))
%result
s =
1x10 struct array with fields:
date

Products

Community Treasure Hunt

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

Start Hunting!

Translated by