Create the matrix with aligned dates

3 views (last 30 days)
Luca Re
Luca Re on 4 Jun 2023
Commented: the cyclist on 7 Jun 2023
hi,i've this problem to solve
i've a matrix of date (see pics) A (row) * B(columns)
i used datetime in this matrix
Each date vector can start and end at a different time
I want to synchronize the dates so that each row corresponds to the same date (
example:
Or if it becomes complicated to shift them up or down n boxes, place them side by side with an index (see pics below)
  6 Comments
Luca Re
Luca Re on 4 Jun 2023
Edited: Luca Re on 4 Jun 2023
>> A=load("TEST_A.mat");
>> D=load("TEST_B.mat");
>> TEST_sYNCRONIZE
Incorrect number or types of inputs or outputs for function 'synchronize'.
Error in TEST_sYNCRONIZE (line 7)
synchronize(A,D,'union','linear')
i try to union array with different size but it give me error..
According to the documentation it says to use the 'union' and 'linear' command if the vectors don't have linear dimensions
I was wrong.. i don't know the reason but i have to use A.A and D.D to recall the data But it doesn't work the same
Luca Re
Luca Re on 6 Jun 2023
Moved: the cyclist on 6 Jun 2023
hi, i attach file .m with data to syncronized
i try to syncronized it but it give me error
Someone can help me? thanks
i want this result (see pics below)

Sign in to comment.

Answers (1)

the cyclist
the cyclist on 6 Jun 2023
load SyncronizedData.mat
for nc = 2:width(J)
[tf,loc] = ismember(J(:,nc),J(:,nc-1));
tmp = J(:,nc);
J(:,nc) = {'NaT'};
J(loc(tf),nc) = tmp(tf);
end
J(all(strcmp(J,'NaT'),2),:)=[]
J = 7×3 cell array
{'13-Jan-2008'} {'13-Jan-2008'} {'NaT' } {'14-Jan-2008'} {'14-Jan-2008'} {'NaT' } {'15-Jan-2008'} {'15-Jan-2008'} {'15-Jan-2008'} {'16-Jan-2008'} {'16-Jan-2008'} {'16-Jan-2008'} {'17-Jan-2008'} {'17-Jan-2008'} {'17-Jan-2008'} {'18-Jan-2008'} {'18-Jan-2008'} {'18-Jan-2008'} {'19-Jan-2008'} {'19-Jan-2008'} {'19-Jan-2008'}
  2 Comments
Luca Re
Luca Re on 7 Jun 2023
I'm having trouble replicating your results
load SyncronizedData.mat
J =
struct with fields:
J: {9×3 cell}
>> J.J
ans =
9×3 cell array
{'NaT' } {'NaT' } {'NaT' }
{'13-Jan-2008'} {'13-Jan-2008'} {'NaT' }
{'14-Jan-2008'} {'14-Jan-2008'} {'NaT' }
{'15-Jan-2008'} {'15-Jan-2008'} {'15-Jan-2008'}
{'16-Jan-2008'} {'16-Jan-2008'} {'16-Jan-2008'}
{'17-Jan-2008'} {'17-Jan-2008'} {'17-Jan-2008'}
{'18-Jan-2008'} {'18-Jan-2008'} {'18-Jan-2008'}
{'19-Jan-2008'} {'19-Jan-2008'} {'19-Jan-2008'}
{'NaT' } {'NaT' } {'NaT' }
should I use J.J instead of J?
the cyclist
the cyclist on 7 Jun 2023
I'm not sure why you save something different in the file you upload than you did in the file you are using. But, yes, it looks like J.J should work.

Sign in to comment.

Categories

Find more on Dates and Time in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!