How to read the indivual elements of a column data?
Mostrar comentarios más antiguos
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
Respuesta aceptada
Más respuestas (3)
Jan
el 24 de Sept. de 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 comentario
Hamza
el 24 de Sept. de 2012
Rodrigo
el 24 de Sept. de 2012
1 voto
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 comentario
Hamza
el 24 de Sept. de 2012
Andrei Bobrov
el 24 de Sept. de 2012
Editada: Andrei Bobrov
el 24 de Sept. de 2012
t = str2double(x)';
year1 = fix(t/1000);
day1 = t - year1*1000;
3 comentarios
Azzi Abdelmalek
el 24 de Sept. de 2012
Andrei, do you mean
day1 = t-year1*1000;
Andrei Bobrov
el 24 de Sept. de 2012
Thank you, Azzi! Corrected.
Hamza
el 24 de Sept. de 2012
Categorías
Más información sobre Resizing and Reshaping Matrices en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!