How to read the indivual elements of a column data?

조회 수: 1 (최근 30일)
Hamza
Hamza 2012년 9월 24일
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

채택된 답변

Azzi Abdelmalek
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)
  댓글 수: 1
Hamza
Hamza 2012년 9월 24일
This works great.Great use of cellfun in fact.

댓글을 달려면 로그인하십시오.

추가 답변 (3개)

Jan
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);
  댓글 수: 1
Hamza
Hamza 2012년 9월 24일
Thanks Jan. I like your solution. Working good.

댓글을 달려면 로그인하십시오.


Rodrigo
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
  댓글 수: 1
Hamza
Hamza 2012년 9월 24일
Thanks Rodrigo. It is a bit too complex for a simple problem. Below two solutions worked great and did the job.

댓글을 달려면 로그인하십시오.


Andrei Bobrov
Andrei Bobrov 2012년 9월 24일
편집: Andrei Bobrov 2012년 9월 24일
t = str2double(x)';
year1 = fix(t/1000);
day1 = t - year1*1000;
  댓글 수: 3
Andrei Bobrov
Andrei Bobrov 2012년 9월 24일
Thank you, Azzi! Corrected.
Hamza
Hamza 2012년 9월 24일
Very simple and elegant. Great man! Thanks

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by