How to read the indivual elements of a column data?
Afficher commentaires plus anciens
Dear All
I have a data say,
x= '96318.74847837'
'96319.62211352'
'96319.62351606'
'96319.62356237'
'96320.05952563'
'96320.49676119'
I want to read all the elements individually. For e.g. '96318.74847837'. In this '96' is the year and '318.74847837' is day of year. I want to display the years and day of years separately and then plot them against another set of data say 'longitude' L= 19.1, 20,19.5,20.1,20.0,20.1
Please help. Thanks
Réponse acceptée
Plus de réponses (3)
Jan
le 24 Sep 2012
You can do this numerically or as string operation:
x = {'96318.74847837', ...
'96319.62211352', ...
'96319.62351606', ...
'96319.62356237', ...
'96320.05952563', ...
'96320.49676119'};
c = char(x);
year = cellstr(c(:, 1:2));
day = cellstr(c(:, 3:end));
% Or:
num = sscanf(sprintf('%s*', x{:}), '%g*');
day = rem(num, 1000);
year = round(num - day);
1 commentaire
Hamza
le 24 Sep 2012
Rodrigo
le 24 Sep 2012
1 vote
It's not clear, but it seems like x is a cell array containing strings. If you want to extract the year and the day then you might do something like:
year=zeros([1,numel(x)]); day=year; for p=1:numel(x) year(p)=str2double(x{p}(1:2)); day(p)=str2double(x{p}(3:end)); end
if you have multiple years, it may make sense to do:
day=day+365.25*(year-min(year));
so that you don't get wrapping of the dates
1 commentaire
Hamza
le 24 Sep 2012
Andrei Bobrov
le 24 Sep 2012
Modifié(e) : Andrei Bobrov
le 24 Sep 2012
t = str2double(x)';
year1 = fix(t/1000);
day1 = t - year1*1000;
3 commentaires
Azzi Abdelmalek
le 24 Sep 2012
Andrei, do you mean
day1 = t-year1*1000;
Andrei Bobrov
le 24 Sep 2012
Thank you, Azzi! Corrected.
Hamza
le 24 Sep 2012
Catégories
En savoir plus sur Matrix Indexing dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!