Create the matrix with aligned dates

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

Can you upload the data, instead of using screenshots? You can use the paper clip icon in the INSERT section of the toolbar.
how i save data in a file?
👍👍 thanks
shamal
shamal on 4 Jun 2023
Edited: shamal 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
shamal
shamal 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)

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

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?
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

Asked:

on 4 Jun 2023

Commented:

on 7 Jun 2023

Community Treasure Hunt

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

Start Hunting!