How to read the indivual elements of a column data?
조회 수: 1 (최근 30일)
이전 댓글 표시
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
댓글 수: 0
채택된 답변
Azzi Abdelmalek
2012년 9월 24일
편집: Azzi Abdelmalek
2012년 9월 24일
year=cellfun(@(y) y(1:2),x,'uni',false)
day=cellfun(@(y) y(3:end),x,'uni',false)
추가 답변 (3개)
Jan
2012년 9월 24일
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);
Rodrigo
2012년 9월 24일
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
Andrei Bobrov
2012년 9월 24일
편집: Andrei Bobrov
2012년 9월 24일
t = str2double(x)';
year1 = fix(t/1000);
day1 = t - year1*1000;
댓글 수: 3
참고 항목
카테고리
Help Center 및 File Exchange에서 Data Type Identification에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!