Reading data into a structure

11 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

Categories

Find more on Data Type Conversion in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!